์ฝ”ํ…Œ์ค€๋น„

<dp> ๋ฐฑ์ค€ 1149๋ฒˆ. rgb๊ฑฐ๋ฆฌ (์‹ค๋ฒ„ 1)

์š”๋Œœ๋‹ค 2023. 1. 9. 03:57

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]))

์„ฑ๊ณต! ํ›„...์ด๋Ÿฐ ๊น”๋”ํ•œ ์ฝ”๋“œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ๋ง์ด์ฅ..๋‚œ ๋ญํ–ˆ๋‚˜ ใ