์ ๊ทผ๋ฐฉ๋ฒ) ๋ค์ ์ง์ ๊ด์ ์์ ๊ฐ๊ฐ ์๊น์ ๋น์ฉ์ ๊ณ์ฐํ์ฌ ์ต์ ๋น์ฉ์ ๋น๊ตํ๋ ๊ด์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
ex) 2๋ฒ์งธ ์ง์ ํ๋์, min(์ฒซ๋ฒ์งธ์ง์ ๋นจ๊ฐ , ์ด๋ก)
์ด๋ ๊ฒ ๊ฐ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋น๊ตํ์ฌ ์ฌ๋ผ๊ฐ๋ ๋ฐํ ์ ๋ฐฉ์์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌ์ฑํ์๋ค.
์์ค์ฝ๋
n = int(input())
d = [[0] * 3 for _ in range(n)]
min_list = [[0] * 3 for _ in range(n)]
for i in range(n):
i1,i2,i3 = map(int,input().split())
d[i][0] = i1
d[i][1] = i2
d[i][2] = i3
for i in range(n):
if i ==0:
min_list[i][0] = d[0][0]
min_list[i][1] = d[0][1]
min_list[i][2] = d[0][2]
else:
min_list[i][0] += d[i][0] + min(min_list[i-1][1],min_list[i-1][2])
min_list[i][1] += d[i][1] + min(min_list[i-1][0],min_list[i-1][2])
min_list[i][2] += d[i][2] + min(min_list[i-1][0],min_list[i-1][1])
print(min(min_list[n-1][0],min_list[n-1][1],min_list[n-1][2]))
----------------
์ฒ์์๋ ์ง,์๊น ๋ฐฐ์ด๊ณผ ๋๊ฐ์ ๋ฐฐ์ด์ ๋ง๋ค์ด์ ๊ฐ๊ฐ์ ๋น์ฉ์ ๋ฃ์ด์ฃผ๋ ๋ฐฉ์์ผ๋ก ํ์๋ค.
ํ์ง๋ง ์๊ฐํด๋ณด๋ ์ด๋ฏธ ๋ง๋ค์ด์ง ๋ฐฐ์ด์ ๋ฃ์ด๋ ์๊ด์ด ์์ด์ ์๋ ์ฝ๋๋ก ๋ค์ ๊ตฌ์ฑํ์๋ค.
n = int(input())
d = [[0] * 3 for _ in range(n)]
for i in range(n):
i1,i2,i3 = map(int,input().split())
d[i][0] = i1
d[i][1] = i2
d[i][2] = i3
for i in range(1,n):
d[i][0] = d[i][0] + min(d[i-1][1],d[i-1][2])
d[i][1] = d[i][1] + min(d[i-1][0],d[i-1][2])
d[i][2] = d[i][2] + min(d[i-1][0],d[i-1][1])
print(min(d[n-1][0],d[n-1][1],d[n-1][2]))
'์๊ณ ๋ฆฌ์ฆ > dp' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 11053๋ฒ)๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด python (0) | 2022.02.28 |
---|---|
๋ฐฑ์ค 9095๋ฒ) 1,2,3๋ํ๊ธฐ (0) | 2022.02.16 |
๋ฐฑ์ค 1464)1๋ก ๋ง๋ค๊ธฐ (0) | 2022.02.08 |