728x90
SMALL
백준 문제 풀이: 2675 [문자열 반복]
문제 링크: https://www.acmicpc.net/problem/2675
문제 설명:
주어진 문자열의 각 문자를 n번 반복하여 출력하는 프로그램을 작성하세요. 테스트 케이스 수 T와 각 테스트 케이스에 대해 반복 횟수 n과 문자열 s가 주어집니다.
입력 조건:
- 첫째 줄에 테스트 케이스의 개수 T가 주어집니다. (1 ≤ T ≤ 1,000)
- 둘째 줄부터 각 테스트 케이스에 대해 반복 횟수 n (1 ≤ n ≤ 8)와 문자열 s가 주어집니다. (1 ≤ 문자열 길이 ≤ 20)
출력 조건:
- 각 테스트 케이스에 대해 반복된 문자열을 출력합니다.
문제 해결 코드
#include <iostream>
using namespace std;
int main() {
int T; // 테스트 케이스 개수
cin >> T;
while (T--) {
int n; // 반복 횟수
string s; // 문자열
cin >> n >> s;
for (char c : s) { // 문자열의 각 문자에 대해
for (int i = 0; i < n; i++) { // n번 반복 출력
cout << c;
}
}
cout << endl; // 각 테스트 케이스마다 줄바꿈
}
return 0; // 프로그램 정상 종료
}
코드 설명
위 코드는 문자열의 각 문자를 주어진 반복 횟수만큼 반복하여 출력합니다.
- 반복문 사용:
- `while (T--)`: 테스트 케이스 개수만큼 반복합니다.
- `for (char c : s)`: 문자열의 각 문자를 순회합니다.
- `for (int i = 0; i < n; i++)`: 각 문자를 n번 반복 출력합니다.
- 출력 형식:
- 각 테스트 케이스마다 반복된 문자열을 출력한 후 개행(`endl`)을 추가합니다.
시간 복잡도 분석:
- 문자열 길이를 m이라 하고, 반복 횟수를 n이라 할 때, 각 문자열에 대해 O(m × n).
- 총 T개의 테스트 케이스에 대해 O(T × m × n).
최대 입력 조건에서 효율적으로 처리할 수 있습니다.
결과
다음은 입력 예시와 출력 결과입니다:
입력:
2
3 ABC
2 hello
출력:
AAABBBCCC
hheelllloo
다른 접근 방식이나 개선 사항이 있다면 댓글로 공유 부탁드립니다!
728x90
LIST
'BAEKJOON > 문자열' 카테고리의 다른 글
백준 2789번 [유학 금지](C++) -yes6686- 티스토리 (0) | 2024.05.06 |
---|---|
백준 1181번 [단어 정렬](C++)-yes6686- 티스토리 (1) | 2023.12.21 |
백준 5525번 [IOIOI](C++)-yes6686- 티스토리 (0) | 2023.12.21 |
백준 1157번 [단어 공부](C++)-yes6686- 티스토리 (0) | 2023.12.16 |
백준 1152번 [단어의 개수](C++)-yes6686- 티스토리 (0) | 2023.12.16 |