[๋ฐฑ์ค 1149๋ฒ] [๐ฅ1] RGB๊ฑฐ๋ฆฌ (python)
๋ฌธ์
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๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋ชจ๋ ์ง์ ์น ํ๋ ๋น์ฉ์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
3
26 40 83
49 60 57
13 89 99
์์ ์ถ๋ ฅ 1
96
์์ ์ ๋ ฅ 2
3
26 40 83
49 60 57
23 89 99
์์ ์ถ๋ ฅ 2
96
์์ ์ ๋ ฅ 3
3
1 100 100
100 100 100
1 100 100
์์ ์ถ๋ ฅ 3
102
์์ ์ ๋ ฅ 4
6
30 19 5
64 77 64
15 19 97
4 71 57
90 86 84
93 32 91
์์ ์ถ๋ ฅ 4
208
์์ ์ ๋ ฅ 5
8
71 39 44
32 83 55
51 37 63
89 29 100
83 58 11
65 13 15
47 25 29
60 66 19
์์ ์ถ๋ ฅ 5
253
ํ์ด
๋จผ์ , ์ฒซ ๋ฒ์งธ ์ง์ ์น ํ๋๋ฐ ๋๋ ๋น์ฉ์ rgb ๋ฆฌ์คํธ์ ์ ๋ ฅ ๋ฐ๋๋ค. ๋ ๋ฒ์งธ ์ง๋ถํฐ ๊ฐ ์๊น๋ณ๋ก ์น ํ๋ ๊ฒฝ์ฐ์ ์ต์ ๋น์ฉ์ ๊ณ์ฐํด๋๊ฐ๋ค. ์๋ฅผ ๋ค์ด, ํ์ฌ ์ง์ ๋นจ๊ฐ์ผ๋ก ์น ํ ๋, ์ด์ ์ง์ ์ด๋ก์ผ๋ก ์น ํ ๊ฒฝ์ฐ์ ํ๋์ผ๋ก ์น ํ ๊ฒฝ์ฐ ์ค์์ ์ต์ ๋น์ฉ์ ๊ณ์ฐํด์ผ ํ๋ค. ์ด์ ์ง์ ์น ํ ๋์ ์ต์ ๋น์ฉ์ ์ด๋ฏธ rgb ๋ฆฌ์คํธ์ ์ ์ฅ๋์ด ์์ผ๋ฏ๋ก, ์ด๋ฅผ ์ด์ฉํ์ฌ ํ์ฌ ์ง์ ์น ํ ๋ ๋๋ ๋น์ฉ์ ๊ณ์ฐํ๋ค. ๋ชจ๋ ์ง์ ์น ํ ๋์ ๋น์ฉ์ด ์ ์ฅ๋ ๊ฐ๊ฐ์ ๊ฒฝ์ฐ ์ค์์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
์ฝ๋
ver(1)
import sys
# ์
๋ ฅ๊ฐ ๋ฐ๊ธฐ
input_str = sys.stdin.readline
n = int(input_str())
rgb = []
for i in range(n):
a, b, c = map(int, input_str().split())
rgb.append([a, b, c])
# ๋ ๋ฒ์งธ ์ง๋ถํฐ ๊ฐ ์๊น๋ณ๋ก ์น ํ ๋น์ฉ ๊ณ์ฐํ๊ธฐ
for i in range(1, n):
# ํ์ฌ ์ง์ ๋นจ๊ฐ์ผ๋ก ์น ํ๋ ๊ฒฝ์ฐ ์ต์ ๋น์ฉ
rgb[i][0] += min(rgb[i-1][1], rgb[i-1][2])
# ํ์ฌ ์ง์ ์ด๋ก์ผ๋ก ์น ํ๋ ๊ฒฝ์ฐ ์ต์ ๋น์ฉ
rgb[i][1] += min(rgb[i-1][0], rgb[i-1][2])
# ํ์ฌ ์ง์ ํ๋์ผ๋ก ์น ํ๋ ๊ฒฝ์ฐ ์ต์ ๋น์ฉ
rgb[i][2] += min(rgb[i-1][1], rgb[i-1][0])
# ๋ง์ง๋ง ์ง์ ์น ํ๋ ๊ฐ๊ฐ์ ์๊น ์ค์์ ์ต์ ๋น์ฉ ์ถ๋ ฅํ๊ธฐ
print(min(rgb[n-1]))
๋๊ธ๋จ๊ธฐ๊ธฐ