Notice
Recent Posts
Recent Comments
Link
관리 메뉴

윤일무이

[백준-Python] 2675번: 문자열 반복 본문

🥧 Python/⚙️ 코딩테스트

[백준-Python] 2675번: 문자열 반복

썸머몽 2023. 2. 15. 12:43
728x90
 

2675번: 문자열 반복

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

www.acmicpc.net

 

풀이

문자열 S를 입력 받고 '각 문자'를 R번 반복해 새로운 문자열 P를 만든다.

첫째 줄에는 테스트 케이스의 개수를 입력한다.

 

ex.

3

2 ABC >> AABBCC

4 AB >> AAAABBBB

5 A >> AAAAA

이런 식으로 나온다고 보면 된다.

 

T = int(input())

for i in range(T): 

    R, S = input().split()

    R = int(R)

(지금 둘다 str으로 받았기 때문에 숫자인 R은 정수화 시켜줘야 한다.)

 

문자열 S의 인수 하나씩이 R번 곱해져야 하기 때문에

변수 j로 문자열 S를 하나씩 대체하면서 R번 곱하면 된다.

 

for j in S :

    print(j*R)

 

이렇게만 입력하면 어떻게 될까

3 abc 를 입력한다면

aaa

bbb

ccc

 

이렇게 출력된다.

각 값이 떨어지게 되는데, 이걸 방지하기 위해 end=''를 넣어준다.

 

여기서 또 print(j*R, end='')만 하면 무슨 문제가 발생하냐,

3 abc

aaabbbccc <<

 

ccc 다음 줄로 넘어가 입력을 받아야 하는데

입력이 ccc 줄에 멈춰 있다. 즉 줄바꿈을 해줘야 한다는 말이다.

줄 바꿈은 for j in S 문에 해줘야 출력된 값 다음으로 줄바꿈이 된다.

이 줄바꿈을 첫 번째 for 문이 있는 곳이나 print(j*R, end='')에 걸면 오답이 나온다.

 

코드

T = int(input())
for i in range(T):
    R, S = input().split()
    R = int(R)
    for j in S :
        print(j*R, end='')
    print()
728x90