-Code
n, m = map(int, input().split())
t = int(input())
x = [0, n]
y = [0, m]
result = 0
for i in range(t):
cut, pos = map(int, input().split())
if cut == 0:
y.append(pos)
else:
x.append(pos)
x.sort()
y.sort()
for i in range(1, len(x)):
for j in range(1, len(y)):
w = x[i] - x[i - 1]
h = y[j] - y[j - 1]
result = max(result, w * h)
print(result)
sort까지는 어떻게든 썼으나 결과를 구하는 방법에서 가장 큰 값일 때와 작은 값일 때만 구해서 틀려서 이유를 찾아보니 모든 부분의 값을 구해야 하며 해당 과정을 피보나치처럼 이전 값과 빼가면서 해결하는 방법을 알게 되어 해결을 했습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 2948번 2009년 (0) | 2022.05.30 |
---|---|
[백준/파이썬] 2909번 캔디 구매 (0) | 2022.05.29 |
[백준/파이썬] 14002번 가장 긴 증가하는 부분 수열 4 (0) | 2022.05.28 |
[백준/파이썬] 1913번 달팽이 (0) | 2022.05.28 |
[백준/파이썬] 2578번 빙고 (0) | 2022.05.28 |