2675번: 문자열 반복
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다
www.acmicpc.net
풀이
문자열 S를 입력 받고 '각 문자'를 R번 반복해 새로운 문자열 P를 만든다.
첫째 줄에는 테스트 케이스의 개수를 입력한다.
ex.
3
2 ABC >> AABBCC
4 AB >> AAAABBBB
5 A >> AAAAA
이런 식으로 나온다고 보면 된다.
T = int(input())
for i in range(T):
R, S = input().split()
R = int(R)
(지금 둘다 str으로 받았기 때문에 숫자인 R은 정수화 시켜줘야 한다.)
문자열 S의 인수 하나씩이 R번 곱해져야 하기 때문에
변수 j로 문자열 S를 하나씩 대체하면서 R번 곱하면 된다.
for j in S :
print(j*R)
이렇게만 입력하면 어떻게 될까
3 abc 를 입력한다면
aaa
bbb
ccc
이렇게 출력된다.
각 값이 떨어지게 되는데, 이걸 방지하기 위해 end=''를 넣어준다.
여기서 또 print(j*R, end='')만 하면 무슨 문제가 발생하냐,
3 abc
aaabbbccc <<
ccc 다음 줄로 넘어가 입력을 받아야 하는데
입력이 ccc 줄에 멈춰 있다. 즉 줄바꿈을 해줘야 한다는 말이다.
줄 바꿈은 for j in S 문에 해줘야 출력된 값 다음으로 줄바꿈이 된다.
이 줄바꿈을 첫 번째 for 문이 있는 곳이나 print(j*R, end='')에 걸면 오답이 나온다.
코드
T = int(input())
for i in range(T):
R, S = input().split()
R = int(R)
for j in S :
print(j*R, end='')
print()
'🥧 Python > ⚙️ 코딩테스트' 카테고리의 다른 글
[백준-Python] 9498번: 시험 성적 (0) | 2023.02.15 |
---|---|
[백준-Python] 2935번: 소음 (0) | 2023.02.15 |
[백준-Python] 5355번: 화성 수학 (0) | 2023.02.15 |
[백준-Python] 2914번: 저작권 (0) | 2023.02.15 |
[백준-Python] 2530번: 인공지능 시계 (0) | 2023.02.15 |