[백준] 2675번 문자열 반복 | 파이썬 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를 출력한다.

 

예제

 

나의 풀이

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

 

참고