- C언어 : 문자열(4)
17.JUN.2022
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는
프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는
식으로 P를 만들면 된다. 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가
주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어
주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다.
#include <stdio.h>
#include <string.h> // strlen()
int main() {
// test : 테스트 케이스의 개수 , repeat : 반복 횟수
int test, repeat;
char str[20]; // 문자열
scanf("%d", &test); // 테스트 케이스의 개수 입력받기
for (int i = 0; i < test; i++) { // 테스트 케이스만큼 반복
scanf("%d %s", &repeat, str); // 반복 횟수와 문자열 입력받기
for (int j = 0; j < strlen(str); j++) { // 문자열의 길이만큼
for (int k = 0; k <repeat; k++) { // 반복횟수로
printf("%c", str[j]); // 문자열의 각 문자 출력
}
}
printf("\n");
}
}
입출력 예제를 보면 아래와 같은 상태로 출력이 나와야 한다.
3 ABC 입력 ---> AAABBBCCC 출력
그래서 이중 for문으로 문자열의 index를 표시할 'j'를 두고, 입력받았던 반복 횟수를 k for문으로 정해 문자열의 j번째를 돌 때마다 repeat만큼 반복해서 출력하게 만들었다.