DevYoon
[ํ๋ก๊ทธ๋๋จธ์ค] ๋๋์ง (Python) ๋ณธ๋ฌธ
link ๐ https://programmers.co.kr/learn/courses/30/lessons/42897
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋๋์ง
๋๋์ด ์ด๋ ๋ง์์ ํธ ๊ณํ์ ํ๊ณ ์์ต๋๋ค. ์ด ๋ง์์ ๋ชจ๋ ์ง๋ค์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋๊ทธ๋๊ฒ ๋ฐฐ์น๋์ด ์์ต๋๋ค. ๊ฐ ์ง๋ค์ ์๋ก ์ธ์ ํ ์ง๋ค๊ณผ ๋ฐฉ๋ฒ์ฅ์น๊ฐ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ธ์ ํ
programmers.co.kr
def solution(money):
dp1 = [0]*len(money)
# ์ฒซ๋ฒ์งธ ์ง ํธ๊ธฐ
dp1[0] = money[0]
dp1[1] = money[0]
for idx in range(2, len(money)-1):
dp1[idx] = max(dp1[idx-1], dp1[idx-2]+money[idx])
# ๋ง์ง๋ง ์ง ํธ๊ธฐ
dp2 = [0]*len(money)
dp2[1] = money[1]
for idx in range(2, len(money)):
dp2[idx] = max(dp2[idx-1], dp2[idx-2]+money[idx])
answer = max(max(dp1), max(dp2))
return answer
โ๏ธ ๋ฉ๋ชจ
- ์ธ๋ฑ์ค 0๊ณผ ์ธ๋ฑ์ค -1์ ์ํ์ผ๋ก ๋์ ๋ ์๋ก ์ธ์
- ์ฒซ๋ฒ์งธ ์ง์ ๋ฌด์กฐ๊ฑด ํฐ๋ ๊ฒฝ์ฐ์ ๋ง์ง๋ง ์ง์ ๋ฌด์กฐ๊ฑด ํฐ๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐ๋ก ์๊ฐํ๋ค.