-
[프로그래머스] 문자열 압축코테공부 2025. 2. 27. 15:20
핵심 💡
- 숫자 크지않으므로 슬라이싱 케이스 전부 탐색해도 됨
- 문자열 길이의 ½ 보다 큰 값으로 슬라이싱하면 압축이 안됨 🔜 len(s)//2 만큼만 for문 돌리기
- 차례대로 슬라이싱하는 for문 작성시 slicingNum만큼 idx건너뛰기 🔜 for idx in range(slicingNum, len(s), slicingNum)
- 첫 시도는 슬라이싱한 문자를 deque에 담았다가 꺼내면서 같은지 체크했지만, 바로바로 비교 가능
def solution(s): answer = len(s) resultStr="" if answer==1: return 1 for slicingNum in range(1,len(s)//2+1): resultStr="" prev=s[:slicingNum] count=1 for idx in range(slicingNum,len(s),slicingNum): cur=s[idx:idx+slicingNum] if prev==cur: count+=1 continue resultStr+=str(count)+prev if count>1 else prev count=1 prev=cur #남은 문자열 처리 resultStr+=str(count)+cur if count>1 else cur answer=min(answer,len(resultStr)) return answer
'코테공부' 카테고리의 다른 글
[개념] 그리디 + [프로그래머스] 큰 수 만들기 (0) 2025.02.28 [백준 17609번] 회문 (0) 2025.02.28 [백준 16926번] 배열 돌리기 1 (0) 2025.02.27 [백준] 누적합구하기 (0) 2025.02.07 [프로그래머스] 01문자열,02재귀,03해쉬(셋,맵) (0) 2025.02.05