[백준 C] 2675 : 문자열 반복

anfruf·2022년 6월 17일

백준 C언어

목록 보기
48/62
  1. 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만큼 반복해서 출력하게 만들었다.

0개의 댓글