-
[Impl] kakao 60057 ๋ฌธ์์ด ์์ถAlgorithms in Python/programmers 2021. 2. 22. 13:24
๐ kakao 60057 ๋ฌธ์์ด ์์ถ
programmers.co.kr/learn/courses/30/lessons/60057
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋ฌธ์์ด ์์ถ
๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ๋ฌธ๊ฐ๊ฐ ๋๊ณ ์ถ์ ์ดํผ์น๋ ๋ฌธ์์ด์ ์์ถํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต๋ถ๋ฅผ ํ๊ณ ์์ต๋๋ค. ์ต๊ทผ์ ๋๋์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๊ฐ๋จํ ๋น์์ค ์์ถ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต๋ถ๋ฅผ ํ๊ณ ์๋๋ฐ, ๋ฌธ์
programmers.co.kr
โ ๋ฌธ์ ์ ํต์ฌ, ํ์ด ๊ณผ์
โข 1๊ฐ ์ด์ ๋จ์๋ก ๋ฌธ์์ด์ ์๋ผ ์์ถํ๋ค.
=> ์์์๋ถํฐ ์ฐจ๋ก๋๋ก 1~len(s) ๋จ์๋ก ์๋ผ์ ํ๋จํ๋ค.
โข ์์ถํ์ฌ ํํํ ๋ฌธ์์ด ์ค ๊ฐ์ฅ ์งง์ ๊ฒ์ ๊ธธ์ด๋ฅผ return ํ๋ค.
=> min์ ์ด์ฉํ์ฌ ๊ฐ์ฅ ์งง์ ๋ฌธ์์ด์ ๊ธธ์ด ์ ๋ฐ์ดํธํ๋ค.
โ ์ ์ฒด ์ฝ๋
def solution(s): n = len(s) result = 1001 # i ๋จ์๋ก ์๋ฅธ๋ค. for i in range(1, n+1): tmp = '' # ๋จ์๊ฐ i ์ผ ๋ ์์ถํ ๋ฌธ์์ด cnt = 1 # ์์ถํ ๋ ์ซ์ ์นด์ดํธ before_c = s[:i] # ์ค๋ณต ํ์ธ์ ์ํ before # i๋ถํฐ i ๋จ์๋ก ์๋ฆ for j in range(i, n, i): c = s[j:j+i] # ์ ๊ณผ ์ค๋ณต๋๋ ๊ฒฝ์ฐ if before_c == c: cnt += 1 # ์ ๊ณผ ์ค๋ณต๋์ง ์์ ๊ฒฝ์ฐ else: if cnt == 1: tmp += before_c else: tmp += (str(cnt)+before_c) cnt = 1 before_c = c if cnt == 1: tmp += before_c else: tmp += (str(cnt)+before_c) # ๊ฐ์ฅ ์งง์ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ์ result๋ก result = min(result, len(tmp)) return result
'Algorithms in Python > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Binary Search] kakao 60060 ๊ฐ์ฌ ๊ฒ์ (0) 2021.01.24