๋ฌธ์
https://www.acmicpc.net/problem/2579
2579๋ฒ: ๊ณ๋จ ์ค๋ฅด๊ธฐ
๊ณ๋จ ์ค๋ฅด๊ธฐ ๊ฒ์์ ๊ณ๋จ ์๋ ์์์ ๋ถํฐ ๊ณ๋จ ๊ผญ๋๊ธฐ์ ์์นํ ๋์ฐฉ์ ๊น์ง ๊ฐ๋ ๊ฒ์์ด๋ค. <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ด ๊ฐ๊ฐ์ ๊ณ๋จ์๋ ์ผ์ ํ ์ ์๊ฐ ์ฐ์ฌ ์๋๋ฐ ๊ณ๋จ์ ๋ฐ์ผ๋ฉด ๊ทธ ๊ณ๋จ์ ์ฐ์ฌ ์๋ ์
www.acmicpc.net
ํ์ด
# ๋ฐฑ์ค 2579๋ฒ ๋ฌธ์ - ๊ณ๋จ ์ค๋ฅด๊ธฐ
import sys
n = int(sys.stdin.readline())
stair = [0 for i in range(301)]
dp = [0 for i in range(301)]
for i in range(n):
stair[i] = int(sys.stdin.readline())
dp[0] = stair[0]
dp[1] = stair[0] + stair[1]
dp[2] = max(stair[1] + stair[2], stair[0] + stair[2])
for i in range(3, n):
dp[i] = max(dp[i - 3] + stair[i - 1] + stair[i], dp[i - 2] + stair[i])
print(dp[n - 1])
์ด๋ฒ ๋ฌธ์ ๋ DP๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ ๋ฌธ์ ์๋ค.
์ฒ์์ ์ ํ์์ ๊ตฌํ ์๊ฐ์ ํ์ง ๋ชปํ๊ณ ์ฌ๋ฌ๊ฐ์ง ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐ์ง๋ ค๊ณ ํ์ผ๋ ๋๋ฌด ๋ง์ ์์ธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ ํ์์ ๊ตฌํด๋ณด์๋ค.
๋ฌธ์ ์ ๋์์๋ ๊ท์น์ ๋ง์กฑํ๊ธฐ ์ํด
dp[0], dp[1], dp[2] ๊น์ง๋ ํ๋์ฝ๋ฉ์ ํตํด ์ ์ธํด์ฃผ๊ณ
๊ทธ ๋ค์ ๊ฒฝ์ฐ๋ ๋ชจ๋ ์ ํ์์ ์ฌ์ฉํ๋๋ก ํ๋ค.
'๐๏ธ Algorithm > ๐ฉ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฉ [๋ฐฑ์ค] [Python] Class3_9375๋ฒ_ํจ์ ์ ์ ํด๋น (0) | 2022.10.30 |
---|---|
๐ฉ [๋ฐฑ์ค] [Python] Class3_2606๋ฒ_๋ฐ์ด๋ฌ์ค (0) | 2022.10.30 |
๐ฉ [๋ฐฑ์ค] [Python] Class3_17129๋ฒ_๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ (0) | 2022.10.28 |
๐ฉ [๋ฐฑ์ค] [Python] Class3_1764๋ฒ_๋ฃ๋ณด์ก (0) | 2022.10.28 |
๐ฉ [๋ฐฑ์ค] [Python] Class3_11723๋ฒ_์งํฉ (0) | 2022.10.28 |