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)