본문 바로가기
백준 알고리즘

백준 - 2675번 문자열 반복 python 문제풀이 [Hellfer]

by Hellfer 2023. 12. 8.
728x90

https://www.acmicpc.net/problem/2675

 

2675번: 문자열 반복

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

www.acmicpc.net

🔷 알고리즘 분류 - 구현, 문자열   난이도 - 브론즈 2

파이썬 문자열 함수에는 다음과 같습니다.

 

1. len(string): 문자열의 길이를 반환합니다.

 

s = ' Hello, World! '

print(len(s))  # 출력: 14

 

2. str.upper(): 모든 문자를 대문자로 변환한 문자열을 반환합니다.

 

print(s.upper())  # 출력: ' HELLO, WORLD! '


3. str.lower(): 모든 문자를 소문자로 변환한 문자열을 반환합니다.

 

print(s.lower())  # 출력: ' hello, world! '


4. str.capitalize(): 첫 문자를 대문자로, 나머지를 소문자로 변환한 문자열을 반환합니다.

 

print(s.capitalize())  # 출력: ' hello, world! '


5. str.title(): 각 단어의 첫 문자를 대문자로 변환한 문자열을 반환합니다.

 

print(s.title())  # 출력: ' Hello, World! '


6. str.split(sep=None): sep를 구분자로 사용하여 문자열을 분리하고, 분리된 문자열들의 리스트를 반환합니다. sep가 지정되지 않으면 공백을 기준으로 분리합니다.

 

print(s.split())  # 출력: ['Hello,', 'World!']


7. str.strip([chars]): 문자열 양쪽 끝의 공백 또는 chars에 지정된 문자들을 제거한 문자열을 반환합니다.

 

print(s.strip())  # 출력: 'Hello, World!'


8. str.lstrip([chars]): 문자열 왼쪽(시작 부분)의 공백 또는 chars에 지정된 문자들을 제거한 문자열을 반환합니다.

 

print(s.lstrip())  # 출력: 'Hello, World! '


9. str.rstrip([chars]): 문자열 오른쪽(끝 부분)의 공백 또는 chars에 지정된 문자들을 제거한 문자열을 반환합니다.

 

print(s.rstrip())  # 출력: ' Hello, World!'


10. str.replace(old, new [count]): 문자열에서 old를 new로 대체한 문자열을 반환합니다. count가 지정되면, 왼쪽부터 count 개수만큼의 old만 대체합니다.

 

print(s.replace('World', 'Python'))  # 출력: ' Hello, Python! '

🔶문제 풀이 - 문자열을 이용한 풀이

# 테스트 케이스의 수를 입력받습니다.
T = int(input())

# 각 테스트 케이스에 대해
for _ in range(T):
    # 반복 횟수 n과 문자열 m을 입력받습니다.
    n, m = input().split()
    
    # n을 정수로 변환합니다.
    n = int(n)
    
    # 결과를 저장할 빈 리스트를 초기화합니다.
    result=[] 
    
    # 문자열 m의 각 문자에 대해
    for i in m: 
        # 그 문자를 n번 반복하여 result에 추가합니다.
        result.append(i * n) 
    
    # result의 모든 요소를 연결하여 문자열로 만든 후 출력합니다.
    print(''.join(result))

🔶 문제 이해하기

예를 들어서 입력값이 아래와 같다고 가정해 보겠습니다.

 

2
3 ABC
5 /HTP

 

첫 번째 반복문을 수행합니다.

 

 # 문자열 m의 각 문자에 대해
    for i in m: 
        # 그 문자를 n번 반복하여 result에 추가합니다.
        result.append(i * n) 

 

n = 3, m = ABC입니다. 

 

i가 m의 각 문자에 대해 (A*3 = AAA, B*3 = BBB, C*3 = CCC) for문을 수행합니다.

두 번째 반복문을 수행합니다.

 

n = 5, m = /HTP입니다.

 

i가 m의 각 문자에 대해  (/*5 = /////, H*5 = HHHHH, T*5 = TTTTT, P*5 = PPPPP) for문을 수행합니다.

 

따라서 출력값은 다음과 같습니다.

 

AAABBBCCC
/////HHHHHTTTTTPPPPP

 

 

🤗파이팅입니다~ 여러분!!🤗

728x90