๋ฌธ์
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๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋ชจ๋ ์ง์ ์น ํ๋ ๋น์ฉ์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
https://www.acmicpc.net/problem/1149
๐ก ํ์ด ๋ฐ ์ฝ๋
import sys
input = sys.stdin.readline
data = []
n = int(input())
for _ in range(n):
data.append(list(map(int, input().split())))
for i in range(1,n):
data[i][0] = min(data[i-1][1], data[i-1][2]) + data[i][0]
data[i][1] = min(data[i-1][0], data[i-1][2]) + data[i][1]
data[i][2] = min(data[i-1][0], data[i-1][1]) + data[i][2]
print(min(data[n-1]))
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ์ด๋ค. ์ฒ์์๋ ์ด์ค๋ฆฌ์คํธ DPํ ์ด๋ธ์ด ์ฌ์ฉ๋๋ ๋ฌธ์ ๋ฅผ ์ฒ์ ์ ํด๋ด์ ์ฝ๊ฒ ํ์ด๊ฐ ๋ ์ค๋ฅด์ง ์์๋ค. ์๊ณ ๋ณด๋, ๊ทธ์ ํ์ฌ ์ง์ ๊ฐ๊ฐ ๋นจ/์ด/ํ๋ก ์์น ํ ๋ ์ด์ ๊ฒน๊ฒน์น์ง ์๋ ์์ ์น ํ ์ด์ ์ง ์ค ์ต์ ๋น์ฉ์ ๊ตฌํด ํ์ฌ ์ง์ ๋น์ฉ์ ๋ํด์ฃผ๋ฉด ๋์๋ค.
'Algorithm > ๐ Baekjoon Judge' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค 1932๋ฒ ์ ์ ์ผ๊ฐํ - ํ์ด์ฌ(Python) (0) | 2021.09.14 |
---|---|
[BOJ] ๋ฐฑ์ค 2579๋ฒ ๊ณ๋จ ์ค๋ฅด๊ธฐ - ํ์ด์ฌ(Python) (0) | 2021.09.14 |
[BOJ] ๋ฐฑ์ค 1463๋ฒ 1๋ก ๋ง๋ค๊ธฐ - ํ์ด์ฌ(Python) (0) | 2021.09.10 |
[BOJ] ๋ฐฑ์ค 16953๋ฒ A๋ฅผ B๋ก ๋ฐ๊พธ๊ธฐ (A->B) - ํ์ด์ฌ(Python) (0) | 2021.08.26 |
[BOJ] ๋ฐฑ์ค 1715๋ฒ ์นด๋ ์ ๋ ฌํ๊ธฐ - ํ์ด์ฌ(Python) (0) | 2021.08.26 |