https://www.acmicpc.net/problem/1149
1149๋ฒ: RGB๊ฑฐ๋ฆฌ
์ฒซ์งธ ์ค์ ์ง์ ์ N(2 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๊ฐ ์ง์ ๋นจ๊ฐ, ์ด๋ก, ํ๋์ผ๋ก ์น ํ๋ ๋น์ฉ์ด 1๋ฒ ์ง๋ถํฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ง์ ์น ํ๋ ๋น์ฉ์ 1,000๋ณด๋ค ์๊ฑฐ๋
www.acmicpc.net
1์ฐจ ์๋ :
"""
!!!!!!!!ํ๋ฆฐ ์ฝ๋!!!!!!!!
"""
import copy
n = int(input())
lst = []
for _ in range(n):
lst.append(list(map(int, input().split()))) #r,g,b
lst_ori = copy.deepcopy(lst)
total = []
for i in range(3): #์ฒซ ๋ฒ์งธ ์ง์ ๋นจ๊ฐ ์ด๋ก ํ๋ ๊ฐ๊ฐ ์ ํํ ๊ฒฝ์ฐ 3
dp = [0]*(n) #dp table
dp[0] = lst[0][i]
idx = i
for j in range(1,n):
lst[j][idx] = 1001 #์์ 3 ์์ธ์ฒ๋ฆฌ
if idx == 0:
dp[j] = dp[j-1] + min(lst[j][1], lst[j][2])
idx= lst[j].index(min(lst[j][1], lst[j][2]))
elif idx == 1:
dp[j] = dp[j-1] + min(lst[j][0], lst[j][2])
idx= lst[j].index(min(lst[j][0], lst[j][2]))
else:
dp[j] = dp[j-1] + min(lst[j][1], lst[j][0])
idx= lst[j].index(min(lst[j][1], lst[j][0]))
if j == n-1:
total.append(dp[j])
lst = copy.deepcopy(lst_ori)
print(min(total))
์์ 1,2,3,4๋ ์ฑ๊ณตํ์์ผ๋ ์์ 5๋ฒ์์ ๋ต์ด ๋์ค์ง ์์.. ๊ธ๊ณ ์ฝ๋๊ฐ ๋ ๋๋ฝ๋ค..
๊ทธ๋์ ๊ทธ๋ฅ ๋ฒ๋ฆฌ๊ณ ์ฒ์๋ถํฐ ๋ค์ ์๊ฐํ๋ค.
n = int(input())
lst = []
for _ in range(n):
lst.append(list(map(int, input().split()))) #r,g,b
# r,g,b
# 0,1,2 idx
for i in range(1,n):
lst[i][0] = lst[i][0] + min(lst[i-1][1], lst[i-1][2])#ํ์ฌ ๋นจ๊ฐ(0)์ ์ ํํ์ผ๋ฏ๋ก idx-1 ์์ ์์ min(ํ๋,์ด๋ก) + ํ์ฌ ๋นจ๊ฐ ๊ฐ
lst[i][1] = lst[i][1] + min(lst[i-1][0], lst[i-1][2])
lst[i][2] = lst[i][2] + min(lst[i-1][0], lst[i-1][1])
print(min(lst[n-1][0], lst[n-1][1], lst[n-1][2]))
์ฑ๊ณต! ํ...์ด๋ฐ ๊น๋ํ ์ฝ๋๊ฐ ์์๋๋ฐ ๋ง์ด์ฅ..๋ ๋ญํ๋ ใ
'์ฝํ ์ค๋น' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
<dp> ๋ฐฑ์ค 4097๋ฒ. ์์ต (์ค๋ฒ 2) (0) | 2023.01.10 |
---|---|
<dp> ๋ฐฑ์ค 11722๋ฒ. ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด (0) | 2023.01.10 |
<๊ตฌํ> ํ๋ก๊ทธ๋๋จธ์ค. ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ๋ฌธ์์ด (0) | 2023.01.08 |
<๊ตฌํ> ํ๋ก๊ทธ๋๋จธ์ค. ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์ (0) | 2023.01.08 |
<๊ทธ๋ฆฌ๋> ๋ฐฑ์ค 11508๋ฒ. 2+1์ธ์ผ (์ค๋ฒ 4) (0) | 2023.01.07 |