Love Every Moment

〔백준/파이썬〕2675번 문자열 반복 본문

PROGRAMMING::LANGUAGE/Python

〔백준/파이썬〕2675번 문자열 반복

해 송 2022. 6. 24. 20:53
반응형

출처

 

2675번: 문자열 반복

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다

www.acmicpc.net

 


 

문제

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다.

 

 


 

예제

# 입력
2
3 ABC
5 /HTP
# 출력
AAABBBCCC
/////HHHHHTTTTTPPPPP

 


 

풀이 - (1)

# 전체 케이스 개수
cnt = int(input())

# R = 반복 횟수, S = 문자열
for i in range(cnt) :
	R, S = input().split()
	# 각 문자 * R 만큼 리스트에 추가
	result = list()
	for letter in S :
		for repeat in range(int(R)) :
			result.append(letter)
	# 리스트를 문자열로 변환
	string = ''.join(result)
	print(string)
  • 먼저 리스트를 만든 다음에 ''.join 을 이용해서 문자열로 변환하는 방식이다
  • 하지만 아래 풀이에서처럼 아예 처음부터 리스트 없이 정답을 만드는 방식도 있다

 

풀이 - (2)

# 전체 케이스 개수
cnt = int(input())

# R = 반복 횟수, S = 문자열
for i in range(cnt) :
	R, S = input().split()

	# 빈 문자열을 생성하여 각 문자 * R 만큼씩 병합
	result = ''
	for letter in S :
		result += letter * int(R)
	print(result)
  • 빈 문자열 '' 을 생성한 다음 + 연산자를 이용해서 문자열을 병합하는 방식이다
  • 원리는 위의 풀이와 같지만 리스트 생성 없이 정답 문자열을 만들어낸다는 것이 장점

 

반응형
Comments