BOJ 1149
๐ต๏ธโ๏ธ ๋ฌธ์
RGB๊ฑฐ๋ฆฌ์๋ ์ง์ด N๊ฐ ์๋ค. ๊ฑฐ๋ฆฌ๋ ์ ๋ถ์ผ๋ก ๋ํ๋ผ ์ ์๊ณ , 1๋ฒ ์ง๋ถํฐ N๋ฒ ์ง์ด ์์๋๋ก ์๋ค.
์ง์ ๋นจ๊ฐ, ์ด๋ก, ํ๋ ์ค ํ๋์ ์์ผ๋ก ์น ํด์ผ ํ๋ค. ๊ฐ๊ฐ์ ์ง์ ๋นจ๊ฐ, ์ด๋ก, ํ๋์ผ๋ก ์น ํ๋ ๋น์ฉ์ด ์ฃผ์ด์ก์ ๋, ์๋ ๊ท์น์ ๋ง์กฑํ๋ฉด์ ๋ชจ๋ ์ง์ ์น ํ๋ ๋น์ฉ์ ์ต์๊ฐ์ ๊ตฌํด๋ณด์.
- 1๋ฒ ์ง์ ์์ 2๋ฒ ์ง์ ์๊ณผ ๊ฐ์ง ์์์ผ ํ๋ค.
- N๋ฒ ์ง์ ์์ N-1๋ฒ ์ง์ ์๊ณผ ๊ฐ์ง ์์์ผ ํ๋ค.
- i(2 ≤ i ≤ N-1)๋ฒ ์ง์ ์์ i-1๋ฒ, i+1๋ฒ ์ง์ ์๊ณผ ๊ฐ์ง ์์์ผ ํ๋ค.
๐ก ์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ง์ ์ N(2 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๊ฐ ์ง์ ๋นจ๊ฐ, ์ด๋ก, ํ๋์ผ๋ก ์น ํ๋ ๋น์ฉ์ด 1๋ฒ ์ง๋ถํฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ง์ ์น ํ๋ ๋น์ฉ์ 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
๐ ์ถ๋ ฅ
- ์ฒซ์งธ ์ค์ ๋ชจ๋ ์ง์ ์น ํ๋ ๋น์ฉ์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
๐โ๏ธ ํ์ด๋ณด์~
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์ ๊ทผํด์ Memoization์ ์ฌ์ฉํ์.
2์ฐจ์ ๋ฐฐ์ด์ ์ด์ฉํด์ ๊ฐ ์๋ฆฌ๋ง๋ค RGB์ ๋น์ฉ์ ๋ด์ ์ ์๊ฒ ํ์.
just like... -> [ [ 1๋ฒ ์ง์ R๋น์ฉ, 1๋ฒ ์ง์ G๋น์ฉ, 1๋ฒ ์ง์ B๋น์ฉ ] , [ 2๋ฒ ์ง์ R๋น์ฉ, ....
์ ํ์์ ๋ ์ฌ๋ฆฌ๊ธฐ ์ํด์ i๋ฒ์งธ์ ์ง๊ณผ ๊ทธ ์๋ค์ i-1๋ฒ์งธ ์ง๊ณผ i+1๋ฒ์งธ ์ง์ ์๊ฐํด๋ณด์.
i+1๋ฒ์งธ ์ง์ i๋ฒ์งธ ์ง์ ์์ ์ํฅ์ ๋ฐ์ง๋ง i-1๋ฒ์งธ ์ง์ ์์๋ ์ํฅ์ ๋ฐ์ง ์๋๋ค.
์ด ๊ฐ์ ์ํฉ์ ์ ํ์์ผ๋ก ์๊ฐํด๋ณด์. i์ i+1๋ง ์๊ฐํด์ฃผ๋ฉด๋๋ค~
- i+1๋ฒ์งธ ์ง์ด R์ผ ๋, i-1์์ G๋ B ์ค ๋ ์ ์ ๋น์ฉ์ ๊ฐ๋ ๊ฒ์ ์ ํํ๋ฉด ๋๋ค.
- i+1๋ฒ์งธ ์ง์ด G์ผ ๋, i-1์์ R๋ B ์ค ๋ ์ ์ ๋น์ฉ์ ๊ฐ๋ ๊ฒ์ ์ ํํ๋ฉด ๋๋ค.
- i+1๋ฒ์งธ ์ง์ด B์ผ ๋, i-1์์ R๋ G ์ค ๋ ์ ์ ๋น์ฉ์ ๊ฐ๋ ๊ฒ์ ์ ํํ๋ฉด ๋๋ค.
# RGB
# n : ์ง์ ์
n = int(input())
# ์ด๊ธฐ์ธํ
0์ผ๋ก ๋ค ๊น์๋๊ฑฐ๋ผ
dp = [[0, 0, 0] for _ in range(n)]
for i in range(n):
# ์ฐ์ ๋จผ์ ์
๋ ฅ๋ฐ์
cost = list(map(int, input().split()))
# ์ฒซ ์
๋ ฅ์ธ ๊ฒฝ์ฐ, ๊ทธ๋ฅ cost๋ฅผ ๋ด์์ฃผ์ธ์.
if i == 0:
dp[0] = cost
else:
# ์ ํ์ ๋ฃ์ด์ฃผ์ธํจ
dp[i][0] = min(dp[i-1][1], dp[i-1][2]) + cost[0] # i๋ฒ์งธ์ง์ด R์ผ๊ฒฝ์ฐ
dp[i][1] = min(dp[i-1][0], dp[i-1][2]) + cost[1] # i๋ฒ์งธ์ง์ด G์ผ๊ฒฝ์ฐ
dp[i][2] = min(dp[i-1][0], dp[i-1][1]) + cost[2] # i๋ฒ์งธ์ง์ด B์ผ๊ฒฝ์ฐ
# dp ๋ฆฌ์คํธ์ n-1๋ฒ์งธ์ ์๋ ๋์ ๋ RGB ๋น์ฉ ์ค ๊ฐ์ฅ ์ต์ ๊ฐ์ ์ถ๋ ฅํ๋ค.
print(min(dp[n-1]))
'๐ต๏ธโโ๏ธ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] BOJ 2606 ๋ฐ์ด๋ฌ์ค (BFS/DFS) (0) | 2021.11.17 |
---|---|
์ฝํ ๋๋น ๋ฐฑ์ค๋ฌธ์ ์ถ์ฒ (0) | 2021.11.05 |
[Python] BOJ 14719 ๋น๋ฌผ (0) | 2021.11.04 |
[BOJ] Python ๋ฐฑ์ค 11650๋ฒ (0) | 2021.08.19 |
[BOJ] Python ๋ฐฑ์ค 2751๋ฒ (0) | 2021.08.16 |