문자열 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
def repeat_characters(T, cases):
results = []
for case in cases:
R, S = case
R = int(R)
P = "".join([char * R for char in S])
results.append(P)
return results
# 입력 처리
T = int(input())
cases = [input().split() for _ in range(T)]
# 결과 계산
results = repeat_characters(T, cases)
# 결과 출력
for result in results:
print(result)
이 문제도 모르는 처리방법이 있어서 먼저 보고 나중에 풀어보겠다
문제 이해
입력
1. 첫 줄의 테스트 케이스 개수 T
2. 그 다음 각 테스트 케이스마다 반복 횟수 R과 문자열 S
출력
각 테스트 케이스마다 문자열 S의 각 문자 R번 반복하여 생성된 새로운 문자열 P 출력
각 테스트 케이스마다 case 즉 R번 S반복해서 cases 리스트에 저장하는 과정임(결론)
3 ABC가 입력되면 ['3', 'ABC']로 분리됨
for문에서 char라는 변수로 S에 대해 담아준 후, 각 문자열을 R번씩 반복해서 []안에 담아준 후,
''.join을 통해 []의 각 요소를 하나의 문자열로 결합시킴
ex) ['AAA','BBB','CCC'] => 'AAABBBCCC'
그렇게 생성된 P를 results 리스트에 추가
그리고 최종적으로 for result in results 반복문을 토해 문자열을 출력시킴
낼 다시풀기!!
# 입력할 횟수
number = int(input())
# 입력된 횟수만큼
for i in range(number):
# 반복할 횟수와 반복할 문자열 받기
R, S = input().split(' ')
# int, list로 변환
R = int(R)
S = list(S)
# list 돌면서 각 요소 입력된 횟수만큼 출력
# end 사용해 기존 print에 이어서 출력
for j in range(len(S)):
print(S[j] * R, end='')
print('')
end =''를 사용해야 각 문자 반복 결과가 아랫줄이 아닌 이어서 출력됨
print('')를 사용해야 각 테스트 케이스의 결과를 출력한 후 줄 바꿈을 해줌