문제 풀이
- 세로로 잘리는 위치,가로로 잘리는 위치를 저장하기 위한 리스트 생성하고 0 넣어두기 (시작점)
- 가로인지 세로인지에 따라서 각각 세로리스트, 가로리스트에 저장
- 마지막 점 추가( 종이의 가로, 세로크기)
- 가로, 세로 리스트 정렬
- 가로/세로 리스트의 두점 (첫번째-두번째, 두번째 - 세번째,…)의 거리 구함
- 그 중에서 최대값을 구하고 각각 곱하면 정답!
소스 코드 (python)
C,R = map(int,input().split()) #세로, 가로 크기
N = int(input()) #자르는 횟수
Rarr = [0] #세로로 잘리는 위치 저장
Carr = [0] #가로로 잘리는 위치 저장
for i in range(N):
t, p = map(int, input().split()) #t :가로인지 세로인지, p : 좌표
if t == 0:
Rarr.append(p) #세로면 세로리스트에
else:
Carr.append(p) #가로면 가로리스트에
Rarr.append(R) #마지막 정점 추가
Carr.append(C)
Rarr.sort() #정렬
Carr.sort()
maxR = 0
for i in range(1, len(Rarr)):
gap = Rarr[i] - Rarr[i - 1]
if maxR < gap:
maxR = gap
maxC = 0
for i in range(1, len(Carr)):
gap = Carr[i] - Carr[i - 1]
if maxC < gap:
maxC = gap
print(maxR * maxC)
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2477. 참외밭 - python (0) | 2020.09.23 |
---|---|
[백준] 2638. 치즈 - python (0) | 2020.07.28 |
[백준] 19236. 청소년상어 - python (0) | 2020.07.15 |
[백준] 17471. 게리맨더링 - python (0) | 2020.07.13 |
[백준]2468. 안전영역 - python (0) | 2020.07.08 |