[ 문제 ]
문자열 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문을 사용해 문제를 해결했다.
중요한점은 한번의 테스트케이스가 끝날때마다 결과값이 출력되고 새로운 입력값을 받아야하기 때문에 줄바꿈이 필요하다. 따라서 한번의 테스트케이스가 끝나는 부분에 줄바꿈을 위한 코드를 작성했다. ( 주석 ** 부분)
알고리즘 분류
- 구현
- 문자열
'백준 알고리즘 코딩' 카테고리의 다른 글
[C언어] 백준 2908번 상수 (0) | 2025.03.22 |
---|---|
[C언어] 백준 1152번 단어의 개수 (0) | 2025.03.22 |
[C언어] 백준 10809번 알파벳 찾기 (0) | 2025.03.22 |
[C언어] 백준 11720번 숫자의 합 (0) | 2025.03.21 |
[C언어] 백준 11654번 아스키 코드 (0) | 2025.03.21 |