2020. 9. 9. 20:49ใ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค/๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
1 3 1 5
1
1 1
1 5
3
3 5
1
5
์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๋ฐ๋ก ์ ํ์์ ์ธ์์ผ๊ฒ ๋ค๋ ์ด๋ป๊ฒ ํ๋ ๊ฑธ๊น?
์ ํ์์ ์ฐธ ์ ๊ธฐํ๋ค. ํญ๋ค์ ๊ด๊ณ๋ก ๋ต์ ํ์ด๊ฐ๋ค๋ ๊ฒ ์ฐธ ๋์๊ฒ๋ ์์ง ์ด๋ ต๋ค.
๊ทธ๋ผ์๋ ํ๋ฒ ๋ ํ์ด๋ณธ๋ค.
์ด ๋ฌธ์ ์์๋ i๋ฒ์งธ๋ฅผ ๊ณจ๋์ ๋ i-2๋ฒ์งธ์ ๊ฐ๊ณผ ๋ํ ๊ฐ๊ณผ i-1๋ฒ์งธ ๊ฐ ํ๋๋ง ๊ณจ๋์ ๋ ์ด ๋์ค์ ํฐ ๊ฒ์ด d[i]์ ๊ฐ์ด ๋๊ฒ ํ์๋ค. ๋ด๊ฐ ์๊ฐํ ์ ํ์์ ํต์ฌ์ ์ด๋ ๋ค. ๊ฐ์ ์ ์ต์ํ์ผ๋ก ๋ง๋ค์ด์ 3๊ฐ์ง ๊ฐ์ ์ ๋ง๋ ํ์ ์ผ์ผํ ๋์ ํด๋ณด๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด 4๋ฒ์จฐ ๊ฐ์ ์ ๊ณต์์ ๋์ ํ์ ๋ ํ๋ฆฌ๋ฉด ์ ํ์์ด๋ค. ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ต์ด ๋์ถ์๋ ๋ ์ด๋ ๊ฒ ํ์ดํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ตฌํ๋ ์ฐ์ต์ ํด์ผํ๋ค.
i๋ฒ์งธ๊น์ง์ ์ต๋๊ฐ์ d[i]์ ์ ์ฅํ๋ ๊ฒ ์ ์ผ ์ค์ํ๋ค.
3๋ฒ์งธ๊น์ง์ ์ต๋๊ฐ์ ๊ตฌํ๋ค๊ณ ์๊ฐํด๋ณด์.
์ฐ์ 1๋ฒ์งธ๊น์ง์ ์ต๋๊ฐ์ 1์ด ๋ค์ด๊ฐ๋ค.
2๋ฒ์งธ๊น์ง์ ์ต๋๊ฐ์ 1๊ณผ 3 ๋์ค ํฐ๊ฒ์ด๋ 3์ด ๋ค์ด๊ฐ๋ค.
3๋ฒ์งธ๊น์ง์ ์ต๋๊ฐ์ 1+1๊ณผ 3 ๋์ค ํฐ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด 4๋ฒ์งธ๊น์ง์ ์ต๋๊ฐ์? ๋ง์ฐฌ๊ฐ์ง์ด๋ค d[3]๊ณผ d[2]+array[4]์ ๊ฐ์ ๋น๊ตํด๋ณด๋ฉด ๋๋ค.
์ ์ ์ต๋๊ฐ์ด ์ปค์ง๋ ์ค๋ฆ์ฐจ์์ด๊ธฐ ๋๋ฌธ์ i-1๋ฒ์จฐ์ i-2๋ฒ์จฐ + i๋ฒ์งธ๋ฅผ ๋น๊ตํ ์ ์๋ ๊ฒ์ด๋ค.
์ฐ์ตํ์..
์์ค ์ฝ๋๋ ์ด๋ ๋ค.
n = int(input())
array= list(map(int,input().split()))
d = [0]*100
d[0] = array[0]
d[1] = max(array[0], array[1])
for i in range(2,n):
d[i] = max(d[i-1], d[i-2] + array[i])
print(d[n-1])
'์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค > ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (0) | 2020.09.07 |
---|