Q. 문자열 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를 출력한다.
https://www.acmicpc.net/problem/2675
2675번: 문자열 반복
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다
www.acmicpc.net
먼저 테스트의 개수 T를 받아준다.
T = int(input())
그 다음 공백을 기준으로 반복횟수 R과 문자열 S를 받아준다.
반복횟수 R은 숫자로 인식되어야하므로, 정수형으로 변환해주었다.
R, S = input().split()
R = int(R)
S 문자열 안에서 문자열 안에 있는 문자들을 각각 R번씩 반복해야 한다.
우리는 반복할 범위를 알고 있으므로 for문을 이용해 반복문을 작성해보겠다.
text라는 변수에 공간을 만들어준 후, R번 반복한 문자들을 text에 넣어줄 것이다.
그리고 그 text를 출력해준다.
text = ''
for i in S:
text += R*i
print(text)
위의 코드를 한번 더 반복해주어야 한다. 테스트의 개수(=T)가 2이기 때문이다.
이 또한, for문을 사용하여 반복을 실행해줄 수 있게끔 해줄 것이다.
그래서 최종 코드는
T = int(input())
for i in range(T):
R, S = input().split()
R = int(R)
text = ''
for i in S:
text += R*i
print(text)
로 나타낼 수 있다.
다른 방법으로는
n = int(input())
for i in range(n):
S = list(input())
for j in range(2,len(S)):
print(S[j] * int(S[0]), end = "")
print("")
처럼 나타낼 수 있겠다. (처음에 구글링하지 않고 만든 코드이다.)
'우당탕탕 파이썬 with 하루하나 알고리즘' 카테고리의 다른 글
백준 1152 파이썬 - 한 문장에 있는 단어의 개수 세기! (0) | 2022.04.08 |
---|---|
백준 1157 파이썬 - 단어에서 가장 많이 사용된 알파벳 찾기! (0) | 2022.04.07 |
백준 10809 파이썬 - 알파벳의 위치를 찾아라! (0) | 2022.04.05 |
백준 11654 파이썬 - 아스키코드(ASKII)로 문자 변환하기! (0) | 2022.04.04 |
백준 1065 파이썬 - 한수의 개수를 구하라! (0) | 2022.04.03 |