본문 바로가기
백준 알고리즘 코딩

[C언어] 백준 2675번 문자열 반복

by 1005_ 2025. 3. 22.

[ 문제 ]

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오.

즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다.

S에는 QR Code "alphanumeric" 문자만 들어있다.

QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다.

[ 입력 ]

첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다.

각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다.

S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 

[ 출력 ]

각 테스트 케이스에 대해 P를 출력한다.

[ 작성한 코드 ]

#include <stdio.h>
#include <string.h>

int main()
{
    int T;
    int R;
    char S[20];
    int i,j,k;
    
    scanf("%d",&T); //테스트케이스 개수 입력
    for(i = 0; i < T; i++) // 테스트케이스 개수 만큼 반복
    {
        scanf("%d %s",&R,S); // 반복횟수, 문자열 입력
        for(j = 0; j < strlen(S); j++) // 문자열의 자리수만큼 반복
        {
            for(k = 0; k < R; k++) // 입력한 반복횟수(R)만큼 반복
            {
                printf("%c",S[j]); //문자열의 첫번째 자리부터 마지막 자리까지 반복
            } 
        }
        printf("\n"); // **
    }
    return 0;
}

 

입력받은 테스트케이스 만큼 반복하기 위해 for문을 사용해 S와 R을 입력받고, 입력받은 문자열의 각 자리수를 R만큼 반복해야하기 때문에 이중 for문을 사용해 문제를 해결했다.

중요한점은 한번의 테스트케이스가 끝날때마다 결과값이 출력되고 새로운 입력값을 받아야하기 때문에 줄바꿈이 필요하다. 따라서 한번의 테스트케이스가 끝나는 부분에 줄바꿈을 위한 코드를 작성했다. ( 주석 ** 부분)

 

알고리즘 분류

  • 구현
  • 문자열