본문 바로가기
DEV/백준 알고리즘

백준 알고리즘 2675번(파이썬)

by 올커 2022. 10. 6.

 

백준 2675번_파이썬 알고리즘

Q. 백준 2675. 문자열 반복

사용자로부터 문자열 S와 단위문자 반복횟수 R을 입력받아 새로운 문자열 P를 만들어 출력하는 프로그램을 작성한다.

입력받는 문자열 S에는 QR Code "alphanumeric" 문자만 들어있다.

 * QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./:
(1) 입력 : 먼저 사용자로부터 테스트 케이스의 갯수 T를 입력받는다.(1 ≤ T ≤ 1,000)

                각 테스트 케이스에는 반복횟수 R과 문자열 S가 공백을 사이에 두고 입력된다. (1 ≤ R ≤ 8), (1 ≤ len(S) ≤ 20)  

(2) 출력 : 각 테스트 케이스에 대한 P를 출력한다.


A. 풀이

# Q 백준 2675. 문자열 반복

N = int(input())
alpha_list = []

for i in range(N):
    t_case = input().split()
    alpha_list.append([t_case[0], t_case[1]])

for i in range(len(alpha_list)):
    for k in range(len(alpha_list[i][1])):
        print(int(alpha_list[i][0])*alpha_list[i][1][k], end='')
    print()

 

1) 변수 선언부

 - 테스트케이스 정수 N을 입력받도록  int(input())을 사용한다.

 - alpha_list에는 각 테스트케이스마다 입력받는 반복횟수와 문자열을 삽입하기 위해 리스트로 선언한다.

 

2) 반복문(for문)(1)

 - 테스트 케이스만큼을 반복하기 위해 range는 N을 넣어준다.

 - 각 테스트 케이스마다 input().split()로 공백을 사이에두고 반복횟수와 문자열을 받은 뒤, 초기에 선언해준 alpha_list에 리스트로 넣어준다.

 

3) 반복문(for문)(2)

 - 두번째 반복문에서는 총 테스트 케이스만큼 (range를 N으로 만들어도 된다.) 반복한다.

 - 내부 반복문에서는 각 요소가 리스트로 되어있기 때문에 요소별로 뽑아주어야 하며,

   첫번째 요소 반복횟수와, 두번째 요소의 문자열의 각 인덱스를 돌아가며 반복할 수 있도록 곱셈을 해준다.

 - print문에는 개행문자 없이 출력할 수 있도록 end='' 옵션을 넣어준다.

 - 하나의 테스트케이스가 끝나면 다음 테스트 케이스는 다음줄에 입력될 수 있도록 print()를 작성하였다.


R. 리뷰

 - 생각보다 복잡해 보일 수 있는 문제이지만, 새로운 문법이 적용된 것은 아니기 때문에 기본이 탄탄하다면 쉽게 풀이할 수 있다. 

 - 리스트의 인덱싱, 그리고 문자열의 인덱싱을 자유자재로 다룰 수 있으면 문제풀이가 더 쉬울 것이다.

반응형

댓글