문제 출처: www.acmicpc.net/problem/2675
1. 코드
#include <stdio.h>
#include <string.h>
void print(char a[], int b)
{
int i, j;
for(i = 0; i < strlen(a); i++)
for(j = 0; j < b; j++)
printf("%c", a[i]);
printf("\n");
}
int main(void)
{
int i, j, n;
char p[21];
scanf("%d", &n);
for(i = 0; i < n; i++)
{
scanf("%d", &j);
scanf("%s", p);
print(p, j);
}
return 0;
}
2. 느낀점
우선 이 문제는 먼저 입력할 개수를 입력받고 알파벳을 몇 개씩 출력할지 한번 더 입력받고 문자열을 입력받고 입력받은 만큼 문자를 반복하여 출력하는 것이다.
그래서 처음에 n값을 통해 몇 개를 입력할지 입력받았고, 반복 횟수는 j를 통해 입력받았다. 문자열은 최대 갯수가 20개이므로 p배열에 입력받았다. 그리고 작성하다보니 삼중 반복문이 되어 있어서 가독성을 위해 함수로 따로 만들었다. 이 함수는 출력만을 위한 것이니 void형으로 함수를 만들었다. 그리고 문자열과 반복 횟수인 j를 전달하여 반복 출력을 하면 끝이다.
이 문제를 풀면서 다중 반복문은 편리할지는 모르겠지만 삼중 반복문부터는 조금 어질러진 모습을 하고 있다는 것을 조금 느꼈다. 그래서 다음과 같은 방법을 하거나 반복문을 안쓰는 방법으로 해결해야겠다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 1152번: 단어의 개수 C언어 (4) | 2019.12.28 |
---|---|
백준 알고리즘 1157번: 단어 공부 C언어 (4) | 2019.12.27 |
백준 알고리즘 10809번: 알파벳 찾기 C언어 (0) | 2019.12.22 |
백준 알고리즘 11720번: 숫자의 합 [Java] (0) | 2019.12.22 |
백준 알고리즘 1065번: 한수 C언어 (0) | 2019.12.20 |