티스토리 뷰

 

[Python] 백준 알고리즘 온라인 저지 2675번 : 문자열 반복

 

Python3 코드

n = int(input())

for _ in range(n):
    cnt, word = input().split()
    for x in word:
        print(x*int(cnt), end='')  # end='' 옆으로 붙임
    print()  # 줄넘김

 

 

Python3 코드 풀이

 

1. 코드 풀이의 전체적인 내용

이번 문제는 숫자와 문자열을 입력받으면 문자열의 각각의 문자를 분리하여 입력받은 숫자만큼 반복해서 출력하는 문제이다. 출력할 때는 공백이나 기호의 구분 없이 문자를 붙여서 출력해야 한다. 

 

출력문은 문자열의 *연산자를 이용하여 입력받는 수만큼 문자열이 반복되도록 하였고 공백 없이 옆으로 정렬될 수 있도록 print함수의 파라미터 end=에 '' 따옴표만 입력해서 공백 없이 출력되도록 하였다. 이렇게 end='' 값을 입력하는 경우 다음 문자열도 줄 넘김이 되지 않기 때문에 입력받은 하나의 문자열이 출력되는 for문이 끝나면 빈 print() 함수로 줄 넘김이 되도록 하였다.

 

2. 첫 번째 for문 코드에서 입력받는 문자를 변수에 지정한다.

n = int(input())

for _ in range(n):
    cnt, word = input().split()

첫 줄에 테스트 케이스 수를 입력받으면 테스트 케이스 수만큼 for문을 반복한다. 첫 번째 for문이 반복될 때 숫자와 문자열을 한 줄에 입력받으면 각각 cnt, word라는 변수 이름을 지정하여서 각각의 값으로 선언하였다.

 

3. 두번째 for문에서 입력받은 문자열을 분리하고 출력문을 작성한다.

    for x in word:
        print(x*int(cnt), end='')  # end='' 옆으로 붙임
    print()  # 줄넘김

for문 첫 줄의 기본구조는 [ for 변수 in iterable ]이다. 이후 수행할 문장은 한 칸 아래에 들여 쓰기 해서 작성한다. 이때 반복 가능한 iterable 자료형은 문자열도 포함이 된다. 문자열을 iterable 자리에 입력하면 문자열의 각 문자를 분리해서 변수에 선언한다.

 

이후 한칸 들여쓰기한 실행 문장에서 * 연산자를 이용하여 x변수를 입력받은 숫자 cnt 만큼 반복하도록 하였다. 출력 형태는 문자열을 옆으로 붙이면서 출력해야 하기 때문에 end 파라미터의 값에 빈 문자열인 따옴표''만 입력해서 문자열이 옆으로 붙어서 출력되도록 했다. 두 번째 for문이 모두 끝난 이후에는 빈 print 함수를 출력하였다.

 

print 함수에서 end 파라미터를 이용하지 않을 때는 줄 넘김 기능이 기본값이고 print 함수 안에서 출력할 값이 여러 개인 경우 공백으로 출력 값이 구분된다. 

 

반응형
댓글
반응형