๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
4๏ธโƒฃ Python/Problem Solving

[Python Algorithm] RGB๊ฑฐ๋ฆฌ BOJ #1149

by seolhee2750 2021. 12. 16.
๋ฌธ์ œ

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

 

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

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

www.acmicpc.net

 

๋‚ด ๋ฌธ์ œ ํ’€์ด
n = int(input())

r, g, b = map(int, input().split())
red = [r]
green = [g]
blue = [b]

for i in range(1, n):
    r, g, b = map(int, input().split())
    red.append(r + min(green[i-1], blue[i-1]))
    green.append(g + min(red[i-1], blue[i-1]))
    blue.append(b + min(red[i-1], green[i-1]))

print(min(red[-1], blue[-1], green[-1]))

๐Ÿ‘‰DP ๋ฌธ์ œ๋กœ, ์—ฐ์†๋˜๋Š” ์ง‘ ๋งˆ๋‹ค ์–ด๋–ค์ƒ‰์œผ๋กœ ์น ํ•œ๋‹ค๋ฉด?์„ ๊ฐ€์ •ํ•˜์—ฌ ํ‘ธ๋Š” ๊ฒƒ์ด ํฌ์ธํŠธ!

  • ์ง‘์„ ๋นจ, ์ดˆ, ํŒŒ ์…‹ ์ค‘ ํ•˜๋‚˜๋กœ ์น ํ•˜๋Š”๋ฐ, ๊ฐ™์€ ์ƒ‰์ด ์—ฐ์†๋  ์ˆ˜ ์—†๋‹ค.
    ์ด ์–˜๊ธฐ๋Š” ์ฆ‰, ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์น ํ–ˆ๋‹ค๋ฉด ๊ทธ ์ด์ „ ์ง‘์€ ์ดˆ๋ก์ด๋‚˜ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์น ํ–ˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฉฐ,
    ์ตœ์†Œ ๋น„์šฉ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด์ „ ์ง‘์˜ ์ดˆ๋ก๊ณผ ํŒŒ๋ž‘ ์ค‘ ๋” ์ €๋ ดํ•œ ์ƒ‰์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ด๋“์ด๋œ๋‹ค๋Š” ๋œป!
  • ์ตœ์†Œ ๋น„์šฉ์ด ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ์ด ์„ธ ๊ฐ€์ง€๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 
    => 'ํ˜„์žฌ' ์ˆœ์„œ์˜ ์ง‘์„ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์น ํ•˜๋Š” ๊ฒฝ์šฐ, ํ˜น์€ ํŒŒ๋ž€์ƒ‰, ํ˜น์€ ์ดˆ๋ก์ƒ‰์œผ๋กœ ์น ํ•˜๋Š” ๊ฒฝ์šฐ.
  • ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ด ์„ธ ๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ์„ธ ๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ณ , 
    ๋ฆฌ์ŠคํŠธ๋งˆ๋‹ค ์ตœ์†Œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ์„ ํƒ์„ ํ•˜์—ฌ ๋น„์šฉ์„ ๋ˆ„์ ํ•œ๋‹ค.
    ๊ทธ๋ฆฌ๊ณ  ์„ธ ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ณจ๋ผ์„œ ๊ฒฐ๊ณผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

(์ด์ „์— swift๋กœ ํ’€์—ˆ๋˜ ๊ธ€์— ๋” ์ž์„ธํ•œ ์„ค๋ช… ์žˆ์Œ. https://seolhee2750.tistory.com/138)

 

๐Ÿ’ก ํ”ผ๋“œ๋ฐฑ
  • ์ตœ์†Œ ๋น„์šฉ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œํ•œ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ๊ด€๊ฑด์ธ๋ฐ, ๋Œ€ํ‘œ์ ์ธ dp ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜•์ธ ๊ฒƒ ๊ฐ™๊ณ ,
    ์ด์ „์— swift๋ฅผ ์ด์šฉํ•˜์—ฌ ํ’€์—ˆ๋˜ ๊ฒฝํ—˜์ด ์žˆ์–ด์„œ ๊ธˆ๋ฐฉ ํ’€ ์ˆ˜ ์žˆ์—ˆ์Œ.

๋Œ“๊ธ€