본문 바로가기

BAEKJOON/문자열

백준 2675번 [문자열 반복](C++)-yes6686- 티스토리

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