2024. 9. 24. 13:14ใAlgorithm ( p & swlug )/Baekjoon
๐ 1์ฃผ์ฐจ ๊ณผ์ 2
๋ฌธ์
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
์ ๊ทธ๋ฆผ์ ํฌ๊ธฐ๊ฐ 5์ธ ์ ์ ์ผ๊ฐํ์ ํ ๋ชจ์ต์ด๋ค.
๋งจ ์์ธต 7๋ถํฐ ์์ํด์ ์๋์ ์๋ ์ ์ค ํ๋๋ฅผ ์ ํํ์ฌ ์๋์ธต์ผ๋ก ๋ด๋ ค์ฌ ๋, ์ด์ ๊น์ง ์ ํ๋ ์์ ํฉ์ด ์ต๋๊ฐ ๋๋ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. ์๋์ธต์ ์๋ ์๋ ํ์ฌ ์ธต์์ ์ ํ๋ ์์ ๋๊ฐ์ ์ผ์ชฝ ๋๋ ๋๊ฐ์ ์ค๋ฅธ์ชฝ์ ์๋ ๊ฒ ์ค์์๋ง ์ ํํ ์ ์๋ค.
์ผ๊ฐํ์ ํฌ๊ธฐ๋ 1 ์ด์ 500 ์ดํ์ด๋ค. ์ผ๊ฐํ์ ์ด๋ฃจ๊ณ ์๋ ๊ฐ ์๋ ๋ชจ๋ ์ ์์ด๋ฉฐ, ๋ฒ์๋ 0 ์ด์ 9999 ์ดํ์ด๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ผ๊ฐํ์ ํฌ๊ธฐ n(1 ≤ n ≤ 500)์ด ์ฃผ์ด์ง๊ณ , ๋์งธ ์ค๋ถํฐ n+1๋ฒ์งธ ์ค๊น์ง ์ ์ ์ผ๊ฐํ์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ํฉ์ด ์ต๋๊ฐ ๋๋ ๊ฒฝ๋ก์ ์๋ ์์ ํฉ์ ์ถ๋ ฅํ๋ค.
๐ ๋ด ์๊ฐ(ํ์ด)
์ผ๋จ ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ํฌ๊ธฐ๊ฐ 5์ธ ์ ์ ์ผ๊ฐํ์ธ๋ฐ, ๋งจ์์ธต 7๋ถํฐ ์๋ ์๋ค ์ค ํ๋๋ฅผ ํํด ์๋์ธต์ผ๋ก ๋ด๋ ค์ฌ ๋, ์ ํํ ์์ ํฉ์ด ์ต๋๊ฐ ๋๋๋ก ํด์ผํ๋ค.
์๋์ธต ์๋ ํ์ฌ ์ธต์์ ์ ํ๋ ์์ ๋๊ฐ์ ์ผ์ชฝ ๋๋ ๋๊ฐ์ ์ค๋ฅธ์ชฝ์ ์๋ ๊ฒ ์ค์์๋ง ์ ํ๊ฐ๋ฅํ๋ค.
ํด๋น๋ฌธ์ ๋ ๋ฐฐ์ด๋กํด์ ๊ตฌํ์๋ ์ต๋๊ฐ ๋๋ ๊ฐ์ ๊ตฌํ๋๋ก ๊ตฌ์ฑํด์ผํ ๊ฒ ๊ฐ๋ค.
ํ์ด์ฌ์ ํ๊ฑฐ๋ผ๋ฉด, for๋ฌธ์ ํตํด์ ๊ตฌํ์ ํด์ผํ ๊ฒ ๊ฐ๊ณ , ์ค๋ฅธ์ชฝ ๋๊ฐ์ ๊ณผ ์ค๋ฅธ์กฑ ๋๊ฐ์ ์ค ๋์ ์ ํด์ผํ๋ฏ๋ก appendํจ์๋ฅผ ๊ตฌํํด์ผํ ๊ฒ์ด๋ค.
๐์ฝ๋ ๋ฐ ์ฝ๋ ํด์
# ์
๋ ฅ๋ฐ์ ์ซ์์ ๊ฐ์ n
n = int(input())
d = []
for i in range(n):
# ๊ฐ ํ์ ์ซ์๋ค์ ์
๋ ฅ๋ฐ์ ๋ฆฌ์คํธ์ ์ถ๊ฐํ๊ธฐ
d.append(list(map(int, input().split())))
# ์ผ๊ฐํ์ ๋ ๋ฒ์งธ ํ๋ถํฐ ์์
for i in range(1, n):
for j in range(len(d[i])):
# ์ฒซ ๋ฒ์งธ ์ด ์ฒ๋ฆฌ: ์์ ํ์ ์ฒซ ๋ฒ์งธ ์ด๊ณผ ๋ํ๊ธฐ
if j == 0:
d[i][j] = d[i][j] + d[i-1][j]
# ๋ง์ง๋ง ์ด ์ฒ๋ฆฌ: ์์ ํ์ ๋ง์ง๋ง ์ด๊ณผ ๋ํ๊ธฐ
elif j == len(d[i]) - 1:
d[i][j] = d[i][j] + d[i-1][j-1]
# ์ค๊ฐ ์ด ์ฒ๋ฆฌ: ์์ ๋ ์ด ์ค ํฐ ๊ฐ์ ๋ํ๊ธฐ
else:
d[i][j] = max(d[i-1][j-1], d[i-1][j]) + d[i][j]
# ๋ง์ง๋ง ํ์์ ์ต๋๊ฐ ์ถ๋ ฅํ๊ธฐ
print(max(d[n-1]))
ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ํ์ด์ผํ๋ค.
์ด ์ฝ๋๋ ์ฃผ์ด์ง ์ซ์๋ก ์ด๋ฃจ์ด์ง ์ผ๊ฐํ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ๋ฐ์, ๊ฐ์ฅ ํฐ ๊ฒฝ๋ก์ ํฉ์ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
ํ๋์ฉ ์ ์ด๊ฐ๋ฉด์ ๊ท์น์ ์ฐพ์์ผํ๋ค.
d[0][0]=7
d[1][0]=3+7, d[1][1]=8+7
d[2][0]=8+d[1][0], d[2][1]=1+max(d[1][0],d[1][1]),
d[2][2]=0+d[1][1]
d[3][0]=2+d[2][0], d[3][1]=7+max(d[2][0],d[2][1]),
d[3][2]=4+max(d[2][1],d[2][2]), d[3][3]=4+d[2][2]
๊ฐ ๋ผ์ธ์ ์ฒ์๊ณผ ๋์ ๋ฐ๋ก ์์ ์ซ์๋ฅผ ๋ํด์ฃผ๊ณ , ๋๋จธ์ง๋ ์ผ์ชฝ ๋๊ฐ์ , ์ค๋ฅธ์ชฝ ๋๊ฐ์ ์ค ์ต๋๊ฐ์ ๋ํด๋๊ฐ ๊ณ์ ๋์ ํด์ ๋ํด๊ฐ๋๋กํด์ผํ๋ค.
1) ์ ๋ ฅํ๊ธฐ
n์ ์ผ๊ฐํ์ ํ ์๋ฅผ ๋ํ๋ด๊ณ , ์ดํ ๊ฐ ํ์ ์ซ์๋ฅผ ์ ๋ ฅ๋ฐ์ 2์ฐจ์ ๋ฆฌ์คํธ d์ ์ ์ฅํ๋ค.
2)๊ฒฝ๋ก ํฉ ๊ณ์ฐํ๊ธฐ
- ์ผ๊ฐํ์ ๋ ๋ฒ์งธ ํ๋ถํฐ ์์ํ์ฌ ๊ฐ ์์์ ๊ฐ์ ๊ฐฑ์
- ์ฒซ ๋ฒ์งธ ์ด์ ์์๋ ์์ ํ์ ํด๋น ์์๋ง ๋ํ๊ณ ,
- ๋ง์ง๋ง ์ด์ ์์ ํ์ ๋ง์ง๋ง ์์์ ๋ํ๋ค.
- ์ค๊ฐ ์ด์, ์์ ํ์์ ํด๋น ์์์ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ ์ต๋๊ฐ์ ๋ํ๋ค.
- ์ด ๊ณผ์ ์ ํตํด ํด๋น ๊ฒฝ๋ก์ ์ต๋ ํฉ์ ๋ํ๋ผ ์ ์์.
3)๊ฒฐ๊ณผ ์ถ๋ ฅํ๊ธฐ
- ๋ง์ง๋ง ํ์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ฐพ์ ์ถ๋ ฅํ๋ค. ์ด๋ ์ผ๊ฐํ์ ๊ผญ๋๊ธฐ์์ ๋ฐ๋ฅ๊น์ง ๋ด๋ ค๊ฐ๋ ๊ฒฝ๋ก ์ค ์ต๋ ํฉ์ ๋ํ๋ด๋๋ก ํ๋ค.
์ด์ ํ๊ธฐ ์์ํ์ผ๋๊น ์ด์ฌํ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ๋ฅผ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ง๊ตฌ๋ค์๋ค..!
์๊ณ ๋ฆฌ์ฆ ๊ณผ์ ๋!
[์ฐธ๊ณ ์๋ฃ]