# 문제
# 코드
import sys
N = int(sys.stdin.readline().strip())
mmin = [0,0,0]
mmax = [0,0,0]
for _ in range(N):
cur = list(map(int, sys.stdin.readline().split()))
mmin = [cur[0] + min(mmin[:2]) , cur[1] + min(mmin), cur[2] + min(mmin[1:])]
mmax = [cur[0] + max(mmax[:2]) , cur[1] + max(mmax), cur[2] + max(mmax[1:])]
print(max(mmax),min(mmin))
# 풀이
- 4MB 크기제한이 있기 때문에 배열을 하나만 사용해서 재활용한다.
- 기본적인 DP의 의해서 최대 최솟값을 구한다.
'•알고리즘(Algorithm ) > 문제풀이' 카테고리의 다른 글
[백준11054&파이썬] dp를 두번 이용하여 문제를 해결하자 (1) | 2023.06.03 |
---|---|
[백준11053&파이썬] DP를 이용하여 반복문을 하나 줄일 수 있다. (0) | 2023.06.01 |
[백준5639&파이썬] BST의 preorder를 postorder로 변환하는 방법 (0) | 2023.05.29 |
[백준2263&파이썬] 분할정복을 이용해 트리의 preorder 구하기 (1) | 2023.05.28 |
[백준11660&파이썬] 누적합을 구하는 기본문제 (0) | 2023.05.26 |