백준 #2675 문자열 반복 c, python

2021. 5. 10. 00:39백준 문제풀이

반응형

 

백준 2675번 문자열 반복 문제이다

뭐 별로 어렵지도 않은 문제라고 생각할 수 있다.(실제로도 그렇다)

 

이 문제를 소개하는 이유는 파이썬의 장점을 부각함과 동시에 C의 불편함을 소개하고 싶어서이다.

 

아래 코드를 보자.

 

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

int main() {
    int numOfTestCase = 0;
    int lenOfString = 0;
    char string[20] = {0};
    
    scanf("%d", &numOfTestCase);
    
    for(int i = 0; i < numOfTestCase; i++) {
        scanf("%d %s", &lenOfString, string);
        
        for(int j =0; j < strlen(string); j++) {
            for(int k = 0; k < lenOfString; k++) {
                printf("%c", string[j]);
            }
        }
        printf("\n");
    }
    return 0;
}

 

위 코드는 C로 작성된 코드 전문이다. (C++아님)

언뜻 보기에도 코드의 길이가 더 길고, 써야 하는 단어도 더 많다.

하나하나 따지고 보면, 내용은 똑같지만 문자열을 처리하는 점에서 많이 다르다.

 

아래 파이썬 코드를 보자.

for _ in range(int(input())):
    s = ''
    a, b = input().split()
    for i in b:
        s+=i*int(a)
    print(s)

 

 

 

파이썬 코드의 장점은 문자열을 *(곱하기) 연산자로 바로 처리할 수 있다는 점이다.

반복문을 쓰지 않고 말이다.

 

이 덕분에 파이썬 코드가 시간 복잡도 측면에서 더욱 효율적일 수 있다.

반응형