데이터 코딩랩
백준 2675 파이썬 문자열 반복 본문
https://www.acmicpc.net/problem/2675
📄 실전 문제 접근 체크리스트
1초, 128MB
1단계: 문제 파악
☑️ 문제 요구사항 한 줄로 정리
: 문자열S를 입력받고 , 각 문자를 R 번 반복, 새문자열 P (R번 , 문자열 S) --> P 출력
추가) 추가사항없음
☑️ 예제 입력/출력 확인
: 입력 → 첫줄 T, 둘째줄 : R번, 문자열S
: 출력 → 새로 만든 문자열 P
추가)
✔️ 핵심 포인트: 공백 단위 입력 처리 + 문자 반복 조합 + 줄마다 출력
2단계: 입력 범위 → 시간복잡도 판단
입력 크기 (N) 적정 알고리즘 복잡도
☑️ 입력 크기 체크 후 -> 내가 쓸 수 있는 알고리즘 선별
→ 테스트케이스 T(1<=T<=1000)
→ 반복 횟수 R (1<=R<=8)
→ 문자열 S (1<=S<=20)
O(T) 정도?
추가)
최악의 경우 → 1000줄 × 20글자 × 8회 = 16만 글자 출력
전혀 문제 없음 → 시간복잡도 O(T × |S|)
✔️ 시간복잡도: O(T × |S|)
✔️ 메모리: 출력 문자열 최대 160,000 → 메모리도 문제 없음
3단계: 알고리즘 유형 선택
☑️ 문자열 처리
추가)
✔️ 문자 하나씩 접근해서 R번 곱하기 → 문자 * R
✔️ 리스트로 누적 → ''.join()으로 문자열로 변환해도 OK
4단계: 자료구조 & 흐름 정리
☑️ 어떤 자료구조를 쓸까?
→ 문자열 인듯
☑️ 함수 나눌 필요 있는가?
→ 없음
☑️ 조건 분기 많을까? 시뮬레이션 필요한가?
→ 없음
☑️ 흐름 : input , map 사용해서 공백으로 구분 →
추가)
✔️ 문자열 그대로 사용, 리스트 따로 만들 필요 없음
✔️ 함수 분리 없이 반복문 안에서 바로 처리 가능
📌 추가 설명 아이디어
input().split() → R, S 한 줄에서 분리
S는 문자열 → for문으로 순회
R은 정수 → 문자열 곱할 때 정수로 변환 필요
5단계: 구현 전 체크
☑️ 입출력 방식은?
→ map 사용, R 번 반복
☑️ 예외 상황은 어떤 게 있을까? (빈 입력, 중복 등)
→ 없는듯?
☑️ 시간 초과 가능성은?
→ 없는듯
추가)
✔️ 예외 없음 (입력 보장되어 있음)
📌 추가 설명 아이디어
꼭 줄마다 출력해야 함 → print()는 반복문 안에서 실행
문자열 누적 시 result += ch * R 또는 ''.join(...)
6단계: 제출 전 체크리스트
☑️ 예제 출력 전부 통과했는가?
☑️ 문제 조건 중 빠뜨린 거 없는가?
☑️ 반복문/조건문 이상한 부분 없는가?
☑️ 시간/메모리 초과 가능성 없나?
추가)
✔️ 예제 출력 확인 필요
✔️ print() 줄바꿈, 공백 유무 확인
✔️ 변수 타입 체크: R은 반드시 int, S는 str
내 답
T = int(input())
for i in range(T):
R, S = input().split()
S =list(S) # S = ['A','B,'C]
for j in range(len(S)): # j= 0,1,2,,,,
print(S[j] * int(R),end='')
'Algorithm > 백준' 카테고리의 다른 글
백준 2908 파이썬 상수 _ join, reversed 추가 이론 (0) | 2025.04.16 |
---|---|
백준 1152 파이썬 단어의 개수 (0) | 2025.04.16 |
백준 10809 파이썬 알파벳 찾기 (0) | 2025.04.15 |
백준 11720 파이썬 숫자의 합 (0) | 2025.04.15 |
백준 11654 파이 아스키코드 (0) | 2025.04.15 |