본문 바로가기
Algorithm/baekjoon

[백준] 2675번 문자열 반복 파이썬 (python)

by eoieiie 2024. 3. 11.

 

 

2675번: 문자열 반복

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

www.acmicpc.net

문제 

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

 

정답코드

n = int(input())

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

 

풀이

  1. 개수 n을 입력받는다. 
  2. n번 반복할 건데, 
  3. 먼저 두 요소를 받아준다. 
  4. 받은 요소 중  word에서 각 글자에 접근한다. 각 글자는
  5. 입력받았던 요소 중 반복 횟수 cnt로 한 번씩 곱해져서 출력되고
  6. for문이 끝나면 줄 바꿈을 한다.

느낀 점

우선 내가 짠 코드는 다음과 같다

N = int(input())
a =[0] * N

for i in range(N):
    a[i] = list(map(str, input().split()))

for i in range(N):
    for l in a[i][1]:
        print(l * int(a[i][0]), end = "")
    print()

 

우선 리스트로 너무 많이 문제를 풀어서 그런지, 접근 방식을 죄다 리스트로 하려고 한다. 넓은 시선의 접근이 필요하다고 생각된다. 

 

댓글