백준 #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)
파이썬 코드의 장점은 문자열을 *(곱하기) 연산자로 바로 처리할 수 있다는 점이다.
반복문을 쓰지 않고 말이다.
이 덕분에 파이썬 코드가 시간 복잡도 측면에서 더욱 효율적일 수 있다.
반응형
'백준 문제풀이' 카테고리의 다른 글
#7662 백준 이중 우선순위 큐 C++ (0) | 2021.07.20 |
---|---|
백준 #17087 숨바꼭질6 문제 풀이 C++ (0) | 2021.05.24 |
백준 #1158 요세푸스 문제 c++ (0) | 2021.05.03 |
백준 #1406 에디터 c++ (0) | 2021.05.02 |
백준 #9012번 괄호 c++ (0) | 2021.05.01 |