ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

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

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

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด, ์–ด๋ ต์ง€ ์•Š๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๊ฐ Nํ–‰์€ ํ•˜๋‚˜์˜ ์ง‘์„ ๋‚˜ํƒ€๋‚ด๊ณ  1, 2, 3์—ด์€ R, G, B๋กœ ์น  ํ•  ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ๋น„์šฉ์„ ์˜๋ฏธํ•œ๋‹ค.

 

 ๊ธฐ๋ณธ ์˜ˆ์ œ๋Š” ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ง‘ 1(0๋ฒˆ ์ธ๋ฑ์Šค)์€ ์ฒซ ๋ฒˆ์งธ ์ง‘์ด๊ธฐ์— ๊ฐ’์„ ๋ˆ„์ ์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์ง‘ 2(1๋ฒˆ ์ธ๋ฑ์Šค)๋ถ€ํ„ฐ๋Š” ํ•ด๋‹น ์ƒ‰์ƒ์„ ์„ ํƒํ•˜์˜€์„ ๋•Œ, ์ด์ „์˜ ์ง‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ‰์ƒ์˜ ๊ฐ’ ์ค‘ ์ตœ์†Ÿ๊ฐ’์„ ๋”ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ง‘ 2์— ํ•ฉ์‚ฐํ•œ ๊ฐ’์€ ๊ฐ’์€ 89, 86, 83๊ฐ€ ๋œ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ง‘ 3์˜ ๊ฒฝ์šฐ๋„ ์ด ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด 96, 172, 185๋ผ๋Š” ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ์˜ˆ์‹œ์—์„œ๋Š” ์ง‘ 1, 2, 3์€ ๊ฐ๊ฐ ๋นจ๊ฐ•, ํŒŒ๋ž‘, ๋นจ๊ฐ•์œผ๋กœ ์„ ํƒํ•˜์˜€์„ ๋•Œ ์ตœ์†Ÿ๊ฐ’์œผ๋กœ ์น ํ•  ์ˆ˜์žˆ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin

if __name__ == '__main__':
    R, G, B = 0, 1, 2
    n = int(stdin.readline())

    prices = \
        [list(map(int, stdin.readline().split())) for _ in range(n)]

    for i in range(1, n):
        prices[i][R] += min(prices[i - 1][G], prices[i - 1][B])
        prices[i][G] += min(prices[i - 1][R], prices[i - 1][B])
        prices[i][B] += min(prices[i - 1][R], prices[i - 1][G])

    print(min(prices[-1]))
728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€