-
[Programmers] ๋ฌธ์์ด ์์ถ with PythonPS 2021. 9. 12. 22:15728x90๋ฐ์ํ
๐ Programmers - [๋ฌธ์์ด ์์ถ]
๐ก ์กฐ๊ฑด ๋ฐ ํ์ด
- ์
๋ ฅ ๋ฐ๋ ์ ๊ธธ์ด๋
1 <= s <= 1000
, ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค. - ๋ฌธ์์ด์ 1๊ฐ ๋จ์๋ก ์๋ฅด๋ ๊ฒ๋ถํฐ s์ ๊ธธ์ด ๋งํผ ์๋ฅด๋ ๊ฒ๊น์ง ๊ณ์ฐ
- ์์ ํ์, ๊ตฌํ ๋ฌธ์
- ๋ฌธ์์ด์ ์๋ฅด๊ณ ์ซ์๋ฅผ ๋ถ์ด๋ ๊ฒ์์ ์ธ๋ฐ ์๋ ๋ฌธ์๊ฐ ๋ค์ด๊ฐ์ง ์๋๋ก ์ฃผ์
๐ฅ ์์ค ์ฝ๋
def solution(s): k = len(s) answer = k for idx in range(1, k + 1): std = '' checker = s[0: idx] std += checker start, end = 0, idx cnt = 1 for i in range(idx, k + 1, idx): if i == k: if cnt <= 1: break else: std += str(cnt) break if checker == s[start + i:end + i]: cnt += 1 elif cnt <= 1: std += s[start + i:end + i] checker = s[start + i:end + i] continue else: std += str(cnt) cnt = 1 std += s[start + i:end + i] checker = s[start + i:end + i] answer = min(answer, len(std)) return answer
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
print(solution("aabbaccc")) print(solution("ababcdcdababcdcd")) print(solution("abcabcdede")) print(solution("abcabcabcabcdededededede")) print(solution("xababcdcdababcdcd"))
์คํ๊ฒฐ๊ณผ
7 9 8 14 17
โจ๏ธ ๋ฌธ์ ํ์ด
answer
์ ๊ฐ์s
์ ๊ธธ์ด๋ก ์ด๊ธฐํ.s
์ ๊ธธ์ด๋งํผ ์๋ฅธ๊ฒ์ด ๊ฐ์ฅ ์งง์ ์ ์๊ธฐ ๋๋ฌธ์ s์ ๊ธธ์ด๋ก ์ด๊ธฐํํ๋ค.1๊ฐ๋ถํฐ s์ ๊ธธ์ด
๋งํผ ์๋ผ์ฃผ๋ฉด์ ์งํ์ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์1๋ถํฐ s+1
๊น์ง ๋ฐ๋ณต๋ฌธ์ ์งํ- ์๋ฅธ ๋ฌธ์์ด์ ์ด๋ฏธ 1๊ฐ๋งํผ ์๋๊ธฐ ๋๋ฌธ์
cnt = 1
๋ก ์ด๊ธฐํ - ์๋ฅธ ๋ฌธ์์ด๊ณผ ๊ฐ์ ๋ฌธ์์ด์ด ์งํํ๋ฉด์ ์์ ๊ฒฝ์ฐ,
cnt += 1
- ์๋ฅธ ๋ฌธ์์ด๊ณผ ๋ค๋ฅธ ๋ฌธ์์ด์ด ๋ฐ๊ฒฌ๋์์ ๊ฒฝ์ฐ, ๊ฒ์ฌํ ๋ฌธ์๋ฅผ ๊ต์ฒดํ๋ค
์ง๊ธ๊น์ง ๊ฒ์ฌํด์ฃผ๋ ๋จ์ด์ ๋๋ ค์จ cnt๋ฅผ std์ ๋ฃ์ด์ฃผ๊ณ ๋ค์ ๊ฒ์ฌ ์งํ. - ๊ฒ์ฌ๊ฐ ๋๋ ๋ค,
std
์ ๊ธธ์ด๊ฐ ๊ธฐ์กด์answer
๋ณด๋ค ์๋ค๋ฉด ๊ฐฑ์ .
๐พ ๋๋์
- ๋๋ ๊ตฌํ์ด ๋งค์ฐ ์ฝํ๊ธฐ ๋๋ฌธ์ ์ฐ์ตํ๊ธฐ ๊ต์ฅํ ์ข์ ๋ฌธ์ ์๋ ๊ฒ ๊ฐ๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 17521 Byte Coin with Python (0) 2021.09.12 [๋ฐฑ์ค] 16507 ์ด๋์ด ๊ฑด ๋ฌด์์ with Python (0) 2021.09.12 [๋ฐฑ์ค] 2458 ํค ์์ with Python (Feat. PyPy3) (0) 2021.09.02 [๋ฐฑ์ค] 5568 ์นด๋ ๋๊ธฐ with Python (0) 2021.08.31 [๋ฐฑ์ค] 4779 ์นธํ ์ด ์งํฉ with Python (0) 2021.08.31 - ์
๋ ฅ ๋ฐ๋ ์ ๊ธธ์ด๋