Algorithm/C

[백준] 2675번 : 문자열 반복 C/C++ 문제풀이 솔루션

Printemp 2021. 10. 28.

문제

문자열 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;
}

댓글

💲 추천 글