메모리 제한이 너무 적어서 그냥 배열을 만들어서 하니 메모리 초과가 났다.
따로 저장을 해주지 말고 이전 것들만 저장하고 입력 받자마자 처리를 해주었다.
- 제일 첫째줄을 premin, premax에 저장한다.
- 1번째 것들은 모두에 들어가므로 초기에 저장하고, index가 0이 아니라면 2와 비교, 2가 아니라면 0과 비교한다.
- tempmin, tempmax에 저장해놓고 한번에 update해준다. (안그러면 중간에 값이 바뀌어버린다)
import sys
input = sys.stdin.readline
N = int(input())
premin = list(map(int, input().split()))
premax = [premin[0], premin[1], premin[2]]
tempmin = [0,0,0]
tempmax = [0,0,0]
for i in range(1, N):
_input = list(map(int, input().split()))
for j in range(3):
_min = premin[1]
_max = premax[1]
if j != 0:
_min = min(_min, premin[2])
_max = max(_max, premax[2])
if j != 2:
_min = min(_min, premin[0])
_max = max(_max, premax[0])
tempmin[j] = _input[j] + _min
tempmax[j] = _input[j] + _max
premin = [tempmin[0],tempmin[1],tempmin[2]]
premax = [tempmax[0],tempmax[1],tempmax[2]]
print(max(premax), min(premin))
'개발 > 알고리즘' 카테고리의 다른 글
[백준 21608] 상어 초등학교 (python) (0) | 2021.04.26 |
---|---|
[백준 14889] 스타트와 링크 (python) (0) | 2021.04.26 |
[백준 2143] 두 배열의 합 (python) (0) | 2021.04.26 |
[백준 1806] 부분합 (python) (0) | 2021.04.23 |
[백준 1072] 게임 (python) (0) | 2021.04.23 |
최근댓글