본문 바로가기

ALGORITHM

알고리즘 스터디, 02: 백준 2675번, 문자열 반복 [PYTHON][파이썬]

문제

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

시사점

1. 문자열 S를 입력 받은 후

2. 각 문자를 R번 반복하여

3. 새 문자열 P를 만들어 출력 

 

test = int(input())

for _ in range (test):
    R, S=input().split()
    R=int(R)

    for i in range(len(S)):
        print(R*S[i], end='')
    print()

코드를 풀어서 해석해보자

 

우선, 

test=int(input())을 통해 test 값을 입력 받을 것이다.

이 test 값은 T개의 테스트 값을 정해줄 것이다.

 

for _ in range (test): 입력받은 test 값 만큼 for문을 반복해줄것이다.
 
     R, S=input().split()
     R=int(R)                문자열 S와 반복횟수 R을 split으로 입력받은 후, 반복 횟수 R만 정수형으로 변환시켜준다.
 
그리고 
 
     for i in range(len(S)):
            print(R*S[i], end='  '다시 for 문을 반복해준다. 이번에는 문자열의 길이만큼인 len(S)만큼 반복해준다.
어떤 문장을 반복하나? R*S[i] 를 프린트 하는 문장을 반복한다.
이 때 1회 반복 마다 i 는 1 ++ 되며, S 문자열의 [i] 번째 문자를 R번 반복하며 print 하게 된다.
근데!!, end (그 뒷 부분) 에는, ' ___' 공백이 자리하는 문자열을 반복하게 되는 것이다.