본문 바로가기
  • 초부득3 - 어제보다 나은 내일을 위해
  • 꿈이 현실이 되는 날까지
sw사관학교 정글 2기/01 기초,재귀,완전탐색, 정렬

[기초-문자열] 백준 2675번 문자열 반복 with Python3

by 금의야행 2021. 8. 7.

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

 

2675번: 문자열 반복

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

www.acmicpc.net

문제

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

내 풀이 -비효율

n = int(input())
for _ in range(n):
    a = list(input().split())
    no = int(a[0])
    str1 = list(a[1])

    result = ''
    i = 0
    for i in range(len(str1)):
        result += str1[i]*no
    print(result)

해설

그냥 보이는 그대로.

정답 풀이

n = int(input())

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

출처:https://ooyoung.tistory.com/69

 

해석

cnt, word = input.split() 같은 방법을 애용하자. 

end=''을 사용할시 print가 계속 옆으로 붙는다는걸 알수있다.

 

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

 

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

댓글