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를 출력한다.
예제
나의 풀이
n = int(input())
for _ in range(n):
r, s = input().split()
result = ""
for i in s:
result += i*int(r)
print(result)
- for문을 사용해서 `result`에 `r`만큼 반복한 문자열을 더하는 방법을 사용했다.
다른 사람의 풀이1
n = int(input())
for _ in range(n):
r, s = input().split()
for i in s:
print(i*int(r), end="")
print()
- 처음에 이 방법을 사용했었는데 출력값 줄 바꿈을 어떻게 해야 될지 몰라서 방향을 수정했었다.
- 간단하게 두 번째 for문이 끝나면 `print()`를 출력해서 줄 바꿈을 하면 된다.
다른 사람의 풀이2
n = int(input())
for _ in range(n):
r, s = input().split()
print("".join([i * int(r) for i in s]))
- `[i * int(r) for i in s]`로 각 문자열을 `r`번씩 반복한 요소가 있는 리스트를 생성한다.
- 예시 `['AAA', 'BBB', 'CCC']`
- `"".join()`로 리스트의 각 요소를 공백 없이 합쳐 하나의 문자열로 만든다.
문자열 합치기 `join()` 함수
`"구분자".join(list)`
arr = ['hello', 'friend']
result = "-".join(arr)
print(result) # hello-friend