문제
문자열 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를 출력한다.
문자열을 입력받을 때 처음에는 %c를 이용하려고 했었다. 하지만 %c를 사용하여 문자열을 입력받기 위해서는 for 문이 필요했고, for 문을 사용하려면 문자열의 길이 값이 필요했다. 이 문제는 문자열의 길이 값이 아닌 테스트 케이스의 개수와 반복 횟수만이 주어지므로 %c로 문자열을 입력받는 것은 잘못된 방법임을 알 수 있었다. 따라서 %s를 이용하여 문제를 해결했다.
입력받은 문자열의 성분별 반복을 위해서는 문자열의 길이 값이 필요하다. 이때 strlen 함수를 이용하여 문자열의 길이 값을 구했다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int case_num, rep_num;
int i, k, j;
char text[20] = { 0 };
scanf("%d", &case_num);
for (i = 0; i < case_num; i++)
{
scanf("%d %s", &rep_num, &text);
for (j = 0; j < strlen(text); j++)
{
for (k = 0; k < rep_num; k++)
printf("%c", text[j]);
}
printf("\n");
}
return 0;
}
'Algorithm > C' 카테고리의 다른 글
[백준] 1152번 : 단어의 개수 C/C++ 문제풀이 솔루션 (0) | 2021.10.29 |
---|---|
[백준] 8958번 : OX퀴즈 C/C++ 문제풀이 솔루션 (0) | 2021.10.29 |
[백준] 10818번 : 최소,최대 C/C++ 문제풀이 솔루션 (0) | 2021.10.28 |
[백준] 11720번 : 숫자의 합 C/C++ 문제풀이 솔루션 (0) | 2021.10.28 |
[백준] 11654번 : 아스키 코드 C/C++ 문제풀이 솔루션 (0) | 2021.10.27 |
댓글