728x90
백준알고리즘 / No.2675 / 문자열 반복 / python3, 파이썬
문제
문자열 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를 출력한다.
예제 입력
2
3 ABC
5 /HTP
예제 출력
AAABBBCCC
/////HHHHHTTTTTPPPPP
해결 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
test = int(input())
result_list = []
if test >= 1 and test <= 1000 :
for count in range(0, test) :
answer, answer2 = map(str, input().split())
result = []
if int(answer) >= 1 and int(answer) <= 8 :
if len(answer2) >= 1 and len(answer2) <= 20 :
for count2 in range(0, len(answer2)):
for count3 in range(0, int(answer)):
result.append(answer2[count2])
result_list.append(result)
for count in range(0, len(result_list)) :
print("".join(map(str, result_list[count])))
|
cs |
line 1 : 테스크 케이스의 개수를 입력받는 부분. input()을 사용
line 2 : 데이터를 저장하기 위해 list 초기화
line 4 : 테스트 케이스의 개수는 1보다 크거나 같고, 1000보다 작거나 같아야 하기 때문에 if문을 사용하여 조건검사
line 5 : 테스트 케이스의 개수만큼 돌아야하기 때문에 for문 사용
line 6 : 두개의 데이터를 입력받는 부분, 공백을 기준으로 쪼개기 위해 split() 사용
line 9 : 테스트의 반복횟수는 1보다 크거나 같고, 8보다 작거나 같이 때문에 if문을 사용하여 조건검사
line 10 : line 6에서 받은 데이터 중 두번째 문자열 데이터는 글자의 수가 적어도 1이고, 20글자를 넘기면 안되기 때문에 if문을 사용하여 조건검사
line 11 ~ 13 : 반복횟수만큼 데이터를 붙여 만들여야하기 때문에 for문을 사용했고, 해당 데이터를 append를 사용하여 result라는 list에 맨뒤에 데이터를 붙인다.
line 15 : 케이스만큼 저장하기 위해 해당 for문에서 result_list에 append한다.
line 17 ~ 18 : result_list의 길이만큼 출력하기 위해서 for문을 사용. range를 이용하여 result_list의 길이만큼 for문을 가동한다.
결과
1년전에 python을 이용하여 문제를 해결하였다. 조금 간단한 문제지만 여러번 중첩하여 for문을 사용해야 하기 때문에 조금만 생각을 잘 못하면 틀릴수도 있으니 주의해야한다 !
<문자열 반복> 이라는 문제 이름 답게 많은 for문이 사용된 것 같다 ! for문을 사용하지 않고도 왠지 문제를 해결할 수 있을 것 같기도 하다.
다음번에는 C언어로 한번 문제를 해결해봐야겠다 ~
반응형
'백준알고리즘' 카테고리의 다른 글
[백준알고리즘/Java,자바] 2741번 N 찍기 문제 및 해결 소스코드 (0) | 2021.01.12 |
---|---|
[백준알고리즘/Java,자바] 2739번 구구단 문제 및 해결 소스코드 (0) | 2021.01.01 |
[백준알고리즘/Java,자바] 2558번 A+B - 2 문제 및 해결 소스코드 (0) | 2020.12.28 |
[백준알고리즘/Java,C,Python] 2557번 Hello World 문제 언어별 속도 비교 (0) | 2020.12.22 |
[백준알고리즘/Java,자바] 2441번 별 찍기 - 4 문제 및 해결 소스코드 (0) | 2020.12.22 |
댓글