๋ฌธ์
https://www.acmicpc.net/problem/1149
๋ด ๋ฌธ์ ํ์ด
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๋ฅผ ์ด์ฉํ์ฌ ํ์๋ ๊ฒฝํ์ด ์์ด์ ๊ธ๋ฐฉ ํ ์ ์์์.
'4๏ธโฃ Python > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python Algorithm] ์ ๊ธฐ๋ ๋ฐฐ์ถ BOJ #1012 (0) | 2022.01.27 |
---|---|
[Python Algorithm] ์ ์ ์ผ๊ฐํ BOJ #1932 (0) | 2021.12.17 |
[Python Algorithm] ํ๋ฒํ ๋ฐฐ๋ญ BOJ #12865 (2) | 2021.11.25 |
[Python Algorithm] ์ซ์์ ํํ Programmers(Lv.2) (0) | 2021.11.22 |
[Python Algorithm] ํ๋๋ฐ ์์ด BOJ #9461 (0) | 2021.11.16 |
๋๊ธ