forked from ndb796/python-for-coding-test
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path3.py
More file actions
22 lines (22 loc) Β· 1.03 KB
/
3.py
File metadata and controls
22 lines (22 loc) Β· 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def solution(s):
answer = len(s)
# 1κ° λ¨μ(step)λΆν° μμΆ λ¨μλ₯Ό λλ €κ°λ©° νμΈ
for step in range(1, len(s) // 2 + 1):
compressed = ""
prev = s[0:step] # μμμλΆν° stepλ§νΌμ λ¬Έμμ΄ μΆμΆ
count = 1
# λ¨μ(step) ν¬κΈ°λ§νΌ μ¦κ°μν€λ©° μ΄μ λ¬Έμμ΄κ³Ό λΉκ΅
for j in range(step, len(s), step):
# μ΄μ μνμ λμΌνλ€λ©΄ μμΆ νμ(count) μ¦κ°
if prev == s[j:j + step]:
count += 1
# λ€λ₯Έ λ¬Έμμ΄μ΄ λμλ€λ©΄(λ μ΄μ μμΆνμ§ λͺ»νλ κ²½μ°λΌλ©΄)
else:
compressed += str(count) + prev if count >= 2 else prev
prev = s[j:j + step] # λ€μ μν μ΄κΈ°ν
count = 1
# λ¨μμλ λ¬Έμμ΄μ λν΄μ μ²λ¦¬
compressed += str(count) + prev if count >= 2 else prev
# λ§λ€μ΄μ§λ μμΆ λ¬Έμμ΄μ΄ κ°μ₯ μ§§μ κ²μ΄ μ λ΅
answer = min(answer, len(compressed))
return answer