Notice
Recent Posts
Recent Comments
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
10-11 00:15
Archives
Today
Total
관리 메뉴

Developer_Neo

[파이썬] 2675번 : 문자열 반복 본문

프로그래밍/백준알고리즘

[파이썬] 2675번 : 문자열 반복

_Neo_ 2022. 1. 19. 16:48
반응형

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" 문자만 들어있다.

QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다.

입력

첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 

출력

각 테스트 케이스에 대해 P를 출력한다.

예제 입력 1 복사

2
3 ABC
5 /HTP

예제 출력 1 복사

AAABBBCCC
/////HHHHHTTTTTPPPPP

 

생각

이중 for문을 돌려도 되는지? -> 이중 for문을 돌려봤을때 8000번에 해당하는 것이 나와서 시간적으로는 문제가 없겠다

생각해 이중 for문으로 접근

 

그래서 입력받은 문자열의 인덱싱을 이용해서 입력받은 횟수를 곱해 문자열에 더하는 방식으로 했다.

 

i=int(input())
words =''
for k in range(i):
    num, word = input().split()
    for j in range(len(word)):
        words += word[j]*int(num)
    words += '\n'

print(words)

 

 

다른풀이

n = int(input())

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

아! word를 for문 돌려서 나타낼 수도 있겠구나! 와 print함수를 써서 호출하게 해도 되는 구나! 라는 생각을 하게 되었다. 

나는 print를 나중에 몰쳐서 해야한다고 생각했다.

반응형

'프로그래밍 > 백준알고리즘' 카테고리의 다른 글

[파이썬]10809번 : 알파벳 찾기  (0) 2022.01.19
[파이썬] 3052번 : 나머지  (0) 2022.01.19
[파이썬] 1157번 : 단어 공부  (0) 2022.01.19
[파이썬] 2908번 : 상수  (0) 2022.01.19
[파이썬] 2920번 : 음계  (0) 2022.01.19
Comments