우당탕탕 파이썬 with 하루하나 알고리즘

백준 2675 파이썬 - 문자열 속에 각 문자를 반복 출력하기!

hyxndy 2022. 4. 6. 13:26

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

 

https://www.acmicpc.net/problem/2675

 

2675번: 문자열 반복

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다

www.acmicpc.net


먼저 테스트의 개수 T를 받아준다.

T = int(input())

그 다음 공백을 기준으로 반복횟수 R과 문자열 S를 받아준다.

반복횟수 R은 숫자로 인식되어야하므로, 정수형으로 변환해주었다.

R, S = input().split()
R = int(R)

 

S 문자열 안에서 문자열 안에 있는 문자들을 각각 R번씩 반복해야 한다.

우리는 반복할 범위를 알고 있으므로 for문을 이용해 반복문을 작성해보겠다.

text라는 변수에 공간을 만들어준 후, R번 반복한 문자들을 text에 넣어줄 것이다.

그리고 그 text를 출력해준다.

text = ''
for i in S:
	text += R*i
print(text)

 

위의 코드를 한번 더 반복해주어야 한다. 테스트의 개수(=T)가 2이기 때문이다.

이 또한, for문을 사용하여 반복을 실행해줄 수 있게끔 해줄 것이다.

 

그래서 최종 코드는

T = int(input())

for i in range(T):
	R, S = input().split()
	R = int(R)
    text = ''
    for i in S:
    	text += R*i
    print(text)

로 나타낼 수 있다.

 

다른 방법으로는

n = int(input())
for i in range(n):
    S = list(input())
    for j in range(2,len(S)):
        print(S[j] * int(S[0]), end = "")
    print("")

처럼 나타낼 수 있겠다. (처음에 구글링하지 않고 만든 코드이다.)