practivceAlgorithm/백준

[백준][Python] 2304 창고다각형

findTheValue 2021. 8. 28. 15:33

 

좌에서 한번 우에서 한번 마지막으로 중복부분 제거

 

import sys
input = sys.stdin.readline

N = int(input())
pillars = [list(map(int, input().split())) for _ in range(N)]
pillars.sort()
height = 0
left = 0
answer = 0
for pillar in pillars:
    if height <= pillar[1]:
        answer += (pillar[0] - left)*height
        height = pillar[1]
        left = pillar[0]
height = 0
left = 0
pillars.reverse()
for pillar in pillars:
    if height <= pillar[1]:
        answer += (left - pillar[0])*height
        height = pillar[1]
        left = pillar[0]
left = 0
h_t = 0
for pillar in pillars:
    if height == pillar[1]:
        answer -= (left - pillar[0])*h_t
        left = pillar[0]
        h_t = pillar[1]
answer += height
print(answer)