๊ด€๋ฆฌ ๋ฉ”๋‰ด

Tech Log ๐Ÿ› ๏ธ

๋ฐฑ์ค€ 1149๋ฒˆ )RGB๊ฑฐ๋ฆฌ ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜/dp

๋ฐฑ์ค€ 1149๋ฒˆ )RGB๊ฑฐ๋ฆฌ

sehaan 2022. 2. 23. 19:37

์ ‘๊ทผ๋ฐฉ๋ฒ•) ๋‹ค์Œ ์ง‘์˜ ๊ด€์ ์—์„œ ๊ฐ๊ฐ ์ƒ‰๊น”์˜ ๋น„์šฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ตœ์†Œ ๋น„์šฉ์„ ๋น„๊ตํ•˜๋Š” ๊ด€์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

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