[๋ฐฑ์ค€-1149] RGB๊ฑฐ๋ฆฌ / Python

๐Ÿ“š Problem Solving/Baekjoon

https://www.acmicpc.net/problem/1149

 

1149๋ฒˆ: RGB๊ฑฐ๋ฆฌ

์ฒซ์งธ ์ค„์— ์ง‘์˜ ์ˆ˜ N(2 ≤ N ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ์ง‘์„ ๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘์œผ๋กœ ์น ํ•˜๋Š” ๋น„์šฉ์ด 1๋ฒˆ ์ง‘๋ถ€ํ„ฐ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ง‘์„ ์น ํ•˜๋Š” ๋น„์šฉ์€ 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜

www.acmicpc.net

n = int(input())
data = []
for _ in range(n):
    data.append(list(map(int, input().split())))

for i in range(1, n):
    for j in range(3):
        if j == 0:
            data[i][j] = min(data[i - 1][1], data[i - 1][2]) + data[i][j]
        elif j == 1:
            data[i][j] = min(data[i - 1][0], data[i - 1][2]) + data[i][j]
        elif j == 2:
            data[i][j] = min(data[i - 1][0], data[i - 1][1]) + data[i][j]

print(min(data[-1]))

 

ํ•ด์„ค

๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜€๋‹ค. ์ด์ „ ์ง‘์˜ ์ž๊ธฐ์™€ ๋‹ค๋ฅธ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง„ ๊ฐ’์˜ ์ตœ์†Œ๋ฅผ ๋”ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.