문제
문자열 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)
'Python' 카테고리의 다른 글
백준 1152 - 단어의 개수 (파이썬) (0) | 2021.03.31 |
---|---|
백준 1157 - 단어 공부 (파이썬) (0) | 2021.03.30 |
백준 10809 - 알파벳 찾기 (파이썬) (0) | 2021.03.27 |
백준 1065 - 한수 (파이썬) (0) | 2021.03.26 |
백준 4673 - 셀프 넘버 (파이썬) (0) | 2021.03.26 |