백준 문제 풀이 2675 (문자열 반복)

2675 문자열 반복

test = int(input()) 		# 테스트 케이스 입력

for k in range(test): 		# 테스트 케이스 만큼 반복

    rep = int(input()) 		# 반복할 횟수 입력

    word = list(input()) 	# 반복할 문자열 입력

    for i in range(len(word)): 	# 단어의 길이만큼 반복
        for j in range(rep): 	# 반복할 횟수 입력한 만큼 반복
            print(word[i]) 	# 출력
        

맨 처음 생각해낸 소스코드 어째서인지 런타임 에러가 뜬다

test = int(input())

for k in range(test):

    rep, word = input().split()

    word = list(word)
    for i in range(len(word)):
        for j in range(int(rep)):
            print(word[i])

계속 런타임 에러가 나서 문제를 살펴보다가 입력 형식이 백준과 다르다는걸 깨달았다. 백준에서 입력은 공백을 기준으로 받았으나 내가 만든 코드는 엔터를 기준으로 입력을 받았었다. 그래서 split 함수를 이용해 입력을 받았으나 결과는 틀렸습니다. 입력 형식이 달라서 런타임 에러가 뜨고 출력 형식이 틀려 틀렸습니다가 뜬거같다.

백준 예제 출력1
AAABBBCCC

내 출력
A
A
A
B
B
B
C
C
C

한줄씩나오는걸 붙여줄 필요가 있을것 같다.

test = int(input())

for k in range(test):

    rep, word = input().split()

    word = list(word)
    for i in range(len(word)):
        print(word[i]*int(rep))

3번째 소스 코드 출력 형식에서 또 문제가 생긴다

위 소스코드 출력
AAA
BBB
CCC

이걸 전부 붙여줄 필요가 있을거 같다.

test = int(input())	 		# 테스트 케이스 입력

for k in range(test): 			# 테스트 케이스 만큼 루프

    rep, word = input().split() 	# 반복할 횟수와 문자 입력

    word = list(word) 			# 문자를 리스트로 나누어줌
    result = '' 			# 빈 문자열 공간 만들어줌
    for i in range(len(word)): 		# 문자 길이만큼 반복
        result += word[i]*int(rep) 	# 입력받은 반복횟수만큼 문자 반복하여 빈 문자열 공간에 합치기
    print(result) 			# 출력

완성된 소스 코드