practivceAlgorithm/백준

[백준][Python] 20207 달력

findTheValue 2021. 8. 16. 17:36

늘 숫자가 있고 없고의 경계를 기준으로 값을 구할때 365일째에서 0으로 넘어가는 구간이 없기 때문에 계산이 끝나지 않을 경우가 많은데 이런경우 늘 조심.. 마지막에 한번 정산 해주거나 배열 뒤에 0값을 하나 넣어서 마무리 시켜줘야함..

 

import sys
input = sys.stdin.readline

N = int(input())
sch = [0]*(366)
for _ in range(N):
    a, b = map(int, input().split())
    for i in range(a,b+1):
        sch[i] += 1

area = 0
max_h = 0
for i in range(1,366):
    if not sch[i-1] and sch[i]:
        left = i
    if max_h < sch[i]:
        max_h = sch[i]
    if not sch[i] and sch[i-1]:
        right = i
        area += (right-left)* max_h
        max_h = 0
        left = 0
        right = 0
area += (366-left)* max_h

print(area)