본문 바로가기

코딩/백준 BOJ

[백준/C언어] 2675번 - 문자열 반복

백준 웹사이트 "2675번 - 문자열 반복" 문제풀이입니다.

언어는 C언어입니다. (제출 언어: C99)

 


문제

 

2675번: 문자열 반복

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다

www.acmicpc.net


소스 코드

#include <stdio.h>
#include <string.h>

int main(void){
    int T;
    scanf("%d", &T);

    for(int i=0; i<T; i++){
        int R;
        char S[20];
        scanf("%d %s", &R, S);

        for(int j=0; j<strlen(S); j++){
            for(int k=0; k<R; k++){
                printf("%c", S[j]);
            }
        }
        printf("\n");
    }
}

문제 풀이

  T, R, S를 각각 선언하고 입력받는 것부터 풀이는 시작됩니다. T를 입력받으면 T회 반복되는 for문을 생성하여 각 반복시행마다 R, S를 입력받습니다. 이때 Line 11에서 S를 입력받을 때는 배열의 이름이 포인터이기 때문에 '&'를 생략하는 것을 기억해주세요! 또한 S의 길이는 20을 넘지 않는다는 조건이 포함되었기에, Line 10과 같이 크기 20의 배열로 선언을 해주면 그 크기를 넘을 일이 없습니다.

  Line 13 ~ 18에서는 앞서 입력받은 R, S를 바탕으로 문자열 P를 출력합니다. 주의할 것은 Line 15에서 줄바꿈을 위한 '\n'을 생략하고, 이를 Line 18에 추가해주는 것입니다. 하나의 테스트케이스가 끝나기 전까지는 줄이 바뀌지 않고 문자열 P가 모두 출력되어야 하기 때문에, 테스트케이스가 완전히 끝나는 시점에 줄을 바꿔줍니다.

 

반응형