728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12913
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
def solution(land):
n = len(land)
dp = [[0 for j in range(4)] for i in range(n)]
for i in range(4):
dp[0][i] = land[0][i]
for i in range(1, n):
dp[i][0] = land[i][0] + max(dp[i-1][1], dp[i-1][2], dp[i-1][3])
dp[i][1] = land[i][1] + max(dp[i-1][0], dp[i-1][2], dp[i-1][3])
dp[i][2] = land[i][2] + max(dp[i-1][0], dp[i-1][1], dp[i-1][3])
dp[i][3] = land[i][3] + max(dp[i-1][0], dp[i-1][1], dp[i-1][2])
return max(dp[n-1])
์ผ๋จ ์ด๋ ๊ฒ ์ ์ถํ๋๋ฐ
for๋ฌธ ๋ด๋ถ์ ํ๋์ฝ๋ฉํ ์ ์ด ๋๋ฌด ๋ง์์ ๊ฑธ๋ ธ๋ค.
๋ค๋ฅธ ๋ถ๋ค ํ์ด๋ฅผ ๋ณด๋๊น ์ด๋ ๊ฒ ํ๋ฉด ๋๋ ๊ฑฐ์๋ค.
๋ณด๊ณ ๋ฐฐ์์ผ๊ฒ ๋ฐ. ์ด๋ฌ๋ ค๊ณ ํ์ด์ฌ ํ๋ ๊ฑฐ์ง
land[i][j] = land[i][j] + max(land[i-1][:j]+land[i-1][j+1:])
728x90
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > DP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]10211๋ฒ: Maximum Subarray (0) | 2023.10.18 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค]ํธํ ๋์ค (0) | 2023.06.22 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2023.05.31 |
[๋ฐฑ์ค]1149๋ฒ: RGB๊ฑฐ๋ฆฌ (0) | 2023.05.27 |
[๋ฐฑ์ค]14501๋ฒ: ํด์ฌ (0) | 2023.03.23 |