Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 비상계엄
- 백준
- 윤석열
- ccw
- 알고리즘
- dfs 백트래킹
- Prim
- union find
- LCA
- Python
- 국민의 힘 뿌리
- 구조론
- 왈왈왈
- 내란수괴 윤석열
- 프림
- BFS
- 유니온 파인드
- 내란죄
- 티스토리챌린지
- DP
- dfs
- 하버-보슈법
- 재귀함수
- 투 포인터
- 이분 탐색
- 6. 25. 전쟁
- 오블완
- 내란수괴
- 분할정복
- 다익스트라
Archives
- Today
- Total
Toolofv 님의 블로그
[Python] 프로그래머스 - 2020 KAKAO BLIND RECRUITMENT 문자열 압축 본문
문제해결방법
1. 문자열을 압축하는 문제다. 압축하는 데 단위를 증가시킬 수 있어야 하고, 최대 단위는 주어진 문자열의 절반일 것이다. 어차피 단위가 그 이상 넘어가면 압축이 되지 않기 때문.
2. 파이썬의 문자열 슬라이싱은 직관적으로 보기 편하고, 쉽다. 이를 이용해 단위에 따른 문자열이 중복되는지를 검사한다.
3. 남은 잔여 문자열도 저장하기 전 반영해줘야 한다.
- 코드
def solution(s):
answer = len(s)
for i in range(1, len(s)//2+1):
start = 0
cnt = 1
res = ''
while start + i <= len(s):
ts = s[start:start+i]
while ts == s[start+i:start+i+i]:
start += i
cnt += 1
if cnt > 1:
res += str(cnt)
cnt = 1
start += i
res += ts
res += s[start:]
answer = min(answer, len(res))
return answer
반응형
'Algorithm' 카테고리의 다른 글
[Python] 백준 - 14888 연산자 끼워넣기 (1) | 2024.09.26 |
---|---|
[Python] 백준 - 2580 스도쿠 (0) | 2024.09.25 |
[Python] 백준 - 9663 N-Queen (1) | 2024.09.23 |
[Python] 백준 - 25682 체스판 다시 칠하기 2 (0) | 2024.09.20 |
[Python] 백준 - 2533 사회망서비스(SNS) (3) | 2024.09.13 |