๐๏ธ Algorithm/๐ฉ ๋ฐฑ์ค
๐ฉ [๋ฐฑ์ค] [Python] 1932๋ฒ_์ ์ ์ผ๊ฐํ
Dbswnstjd
2022. 11. 21. 02:50
๋ฌธ์
https://www.acmicpc.net/problem/1987
1987๋ฒ: ์ํ๋ฒณ
์ธ๋ก R์นธ, ๊ฐ๋ก C์นธ์ผ๋ก ๋ ํ ๋ชจ์์ ๋ณด๋๊ฐ ์๋ค. ๋ณด๋์ ๊ฐ ์นธ์๋ ๋๋ฌธ์ ์ํ๋ฒณ์ด ํ๋์ฉ ์ ํ ์๊ณ , ์ข์ธก ์๋จ ์นธ (1ํ 1์ด) ์๋ ๋ง์ด ๋์ฌ ์๋ค. ๋ง์ ์ํ์ข์ฐ๋ก ์ธ์ ํ ๋ค ์นธ ์ค์ ํ ์นธ์ผ
www.acmicpc.net
ํ์ด
DP๋ฅผ ์ด์ฉํ ๊ฐ๋จํ ๋ฌธ์ ์ด๋ค. ๊ท์น์ ์ฐพ๋ค๋ณด๋ฉด ๋งค์ฐ ์ฝ๊ฒ ๋์จ๋ค.
# ๋ฐฑ์ค 1932๋ฒ ๋ฌธ์ - ์ ์ ์ผ๊ฐํ
n = int(input())
dp = []
for _ in range(n):
dp.append(list(map(int, input().split())))
for i in range(len(dp)):
for j in range(len(dp[i])):
if j == 0:
dp[i][j] = dp[i][j] + dp[i-1][j]
elif j == len(dp[i]) - 1:
dp[i][j] = dp[i][j] + dp[i-1][j-1]
else:
dp[i][j] = dp[i][j] + max(dp[i-1][j-1], dp[i-1][j])
print(max(dp[-1]))