https://school.programmers.co.kr/learn/courses/30/lessons/60057
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
ํ์ด ์ฐธ๊ณ --> ์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉํ ์คํธ๋ค (๋๋๋น)
์ด๊ฑด ๋ด๊ฐ ํ์๋ค๊ธฐ๋ณด๋ค,, ํ๋ค๊ฐ ์คํจํ๊ณ ์ฑ ๋ณด๋ฉด์ ๊ณต๋ถํ๊ณ , ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ ๊ธ์ด๋ค.
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ฌธ์์ด ๊ธธ์ด๊ฐ 1000 ์ดํ์ด๋ฏ๋ก,
์์ ํ์์ผ๋ก ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ํด๋ณด๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค!
๋ฐ๋ผ์ ๋ฌธ์์ด์ 1๊ฐ, 2๊ฐ, 3๊ฐ, 4๊ฐ, ... , len(s)//2 ๊ฐ ๊น์ง ์๋ผ์ ์์ถ๋ ๋ฌธ์์ด ๊ธธ์ด๋ฅผ ๋น๊ตํด๋ณด๊ณ ,
์ด ์ค ๊ฐ์ฅ ์งง์ ๊ฒ์ ๋ฆฌํดํด์ฃผ๋ฉด ๋๋ค.
์ธ๋ฑ์ค ๋๋ฐ๋ก ์ธ๋ฉด์ ๋ฌธ์์ด ์ฌ๋ผ์ด์ฑ ์ ํ๋ฉด ๋๋ค.
์ ๋ต ์ฝ๋ ๋ณด๊ณ ์ดํดํ๋ ๊ฑด ์ ๋ง ์ฝ๋ค. ๊ทผ๋ฐ ์ด์ ์ด๊ฒ ํผ์ ์ ๊ตฌํํ๋ ค๋๊น ์ด๋ ค์ ๋..๋ฌธ์ ๋ค..
์์ง์ ์ฐ์ต์ด ํจ์ฌ ๋ง์ด ํ์ํ ๊ฒ ๊ฐ๋ค.
์ด์ฝํ ์ฑ ์ ๋์จ ์ ๋ต ์ฝ๋
def solution(s):
answer = len(s)
for n in range(1, len(s)//2+1): #๋ฌธ์์ด์ n๊ฐ๋จ์๋ก ์๋ผ์ ์์ถํด๋ณธ๋ค
compressed=""
prev = s[:n] #๋งจ์๋ถํฐ step๊น์ง ๋ฌธ์์ด ์ถ์ถ
cnt = 1
#n๋ถํฐ n์ฉ ์ฆ๊ฐ์ํค๋ฉฐ ๋ฌธ์์ด ์ถ์ถ
for i in range(n, len(s), n):
if prev == s[i:i+n]: #์ด์ ๋ฌธ์์ด๊ณผ ๋์ผํ๋ค๋ฉด cnt๋ฅผ ์ฆ๊ฐ
cnt += 1
else: #์๋๋ผ๋ฉด ์ ์ ํ ๋ฌธ์์ด์ ์ถ๊ฐํด์ค ํ cnt๋ฅผ ์ด๊ธฐํ
compressed += str(cnt) + prev if cnt>=2 else prev
prev = s[i:i+n]
cnt += 1
#๋จ์์๋ ๋ฌธ์์ด ์ฒ๋ฆฌ
compressed += str(cnt) + prev if cnt>=2 else prev
answer = min(answer, len(compressed))
return answer
---
๋ด ํ์ด (2023.03.26)
my_str = "aabbaccc"
# ์์ถ๋จ์: 1๋ถํฐ ๋ฌธ์์ด ๊ธธ์ด์ ์ ๋ฐ๊น์ง
token = 1
ans = int(1e9)
while token <= len(my_str)//2:
temp = ''
arr = [] #๋ฌธ์์ด์ ์๋ผ์ ์ ์ฅ
i = 0
while i < len(my_str):
arr.append(my_str[i:i+token])
i += token
before = ''
cnt = 1
for x in arr:
if x == before: # ์์ ๋ฌธ์์ ๊ฐ์ผ๋ฉด ์นด์ดํธ ์ฆ๊ฐ์ํค๊ธฐ
cnt += 1
else: # ์๋๋ผ๋ฉด ๋ฌธ์์ด์ ์ถ๊ฐํด์ฃผ๊ณ ์นด์ดํธ, ์์๋ฌธ์ ๊ฐ ๋ฐ๊ฟ์ฃผ๊ธฐ
if cnt > 1:
temp += str(cnt) + before
cnt = 1
else:
temp += before
before = x
# ๋ง์ง๋ง ๋จ์ ๋ฌธ์์ด ์ฒ๋ฆฌ
if cnt>1:
temp += str(cnt) + before
else:
temp += before
token += 1
ans = min(ans, len(temp))
print(ans)
์ถ์ถํ ๋ฌธ์์ด์ ๋ฐฐ์ด์ ์ ์ฅํด๋๊ณ , ๋ฐฐ์ด์ ๋๋ค์ ์ํํ ํ์ ์์ด ๋ฐ๋ก๋ฐ๋ก ํด์ฃผ๋ฉด ๋๋๊ตฌ๋ญ..!
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]10825๋ฒ: ๊ตญ์์ (0) | 2023.03.04 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ์ฃผ์ ์ซ์ 3 (0) | 2023.03.04 |
[๋ฐฑ์ค]15686๋ฒ: ์นํจ ๋ฐฐ๋ฌ (0) | 2023.03.01 |
๋ค์ ํ ๋ฌธ์ (0) | 2023.02.26 |
[์ด์ฝํ ] ๋ ๋ฐฐ์ด์ ์์ ๊ต์ฒด (0) | 2023.02.23 |