๋ฌธ์
https://www.acmicpc.net/problem/2096
ํ์ด
# ๋ฐฑ์ค 2096๋ฒ ๋ฌธ์ - ๋ด๋ ค๊ฐ๊ธฐ
import sys
input = sys.stdin.readline
n = int(input())
arr = list(map(int, input().split()))
maxDP = arr
minDP = arr
for _ in range(n-1):
arr = list(map(int, input().split()))
maxDP = [arr[0] + max(maxDP[0], maxDP[1]), arr[1] + max(maxDP), arr[2] + max(maxDP[1], maxDP[2])]
minDP = [arr[0] + min(minDP[0], minDP[1]), arr[1] + min(minDP), arr[2] + min(minDP[1], minDP[2])]
print(max(maxDP), min(minDP))
DP ๋ฌธ์ ์ด์ง๋ง ๊ธฐ์กด์ ๋ฉ๋ชจ์ ์ด์ ๋ฐฉ์์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.
๋ฉ๋ชจ์ ์ด์ ์ ํ ๋ ์ฌ์ฉํ์ง ์๋ ๊ฐ์ ๋ฐฐ์ด์ ์ ์ฅํ์ง ์๊ณ ๋ฐฐ์ด์ ์๋กญ๊ฒ ๊ฐฑ์ ์์ผ์ค์ผํ๋ค.
๋ฐ๋ผ์ minDP์ maxDP๋ฅผ ๋๋์ด์ ๊ตฌํ๋ค.
๊ตฌํ๋ ๋ฐฉ์์ ๋งจ ์ฒซ์ค์ DP์ ์ ์ฅํ๊ณ
0๋ฒ์งธ ์ธ๋ฑ์ค๋ ๋ค์์ค์ 0, 1 ์ธ๋ฑ์ค ์ค ํฐ ๊ฐ์ ์ ํํ๊ณ
1๋ฒ์งธ ์ธ๋ฑ์ค๋ ๋ค์์ค ์ค์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ ํํ๋ฉด ๋๊ณ
2๋ฒ์งธ ์ธ๋ฑ์ค๋ ๋ค์์ค์ 1, 2 ์ธ๋ฑ์ค ์ค ํฐ ๊ฐ์ ์ ํํ๋ค.
'๐๏ธ Algorithm > ๐ฉ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฉ [๋ฐฑ์ค] [Python] [Silver2] 1535๋ฒ_์๋ (2) | 2023.05.05 |
---|---|
๐ฉ [๋ฐฑ์ค] [Python] [Gold3] 2252๋ฒ_์ค ์ธ์ฐ๊ธฐ (1) | 2023.05.04 |
๐ฉ [๋ฐฑ์ค] [Python] [Silver1] 11057๋ฒ_์ค๋ฅด๋ง ์ (2) | 2023.05.02 |
๐ฉ [๋ฐฑ์ค] [Python] [Gold5] 17070๋ฒ_ํ์ดํ ์ฎ๊ธฐ๊ธฐ 1 (0) | 2023.05.01 |
๐ฉ [๋ฐฑ์ค] [Python] [Gold5] 2470๋ฒ_๋ ์ฉ์ก (0) | 2023.04.30 |