본문 바로가기

Python

백준 2675 - 문자열 반복 (파이썬)

문제

문자열 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를 출력한다.

 

 

# 해결법

 

처음에는 j가 문자열을 반복하면서 x[0]번만큼 곱해주고, 붙여서 출력하는 형태로 구현했는데 

틀렸다고 나왔다. 아마 출력된 결과값의 마지막부분에 \n 이 포함되지 않아서 인 것 같다. 

n = int(input())
for i in range(n):
    x = input().split()
    y = str(x[1])
    for j in (y):
        print(j*int(x[0]), end='')

두번째로 작성한것은 아예 문자열 전부를 리스트로 받아와서 x[2]번째 부터 x[0]번 만큼 곱한것을 새로운 list z에 더해주고 join 함수를 이용해서 출력하도록 해주었는데 이것도 틀렸다고 나왔다.

n = int(input())
for i in range(n):
    x = list(input())
    y = int(x[0])
    z = []
    for j in x:
        if j == x[0] or j == x[1]:
            continue
        z.append(j*int(x[0]))
    print(''.join(z))

마지막으로 작성한 코드는 그냥 리스트를 다 빼버리고 구현했더니 통과되었다.

n = int(input())
for i in range(n):
    x, y = input().split()
    text = ''
    for i in y:
        text += int(x) * i
    print(text)