늘 숫자가 있고 없고의 경계를 기준으로 값을 구할때 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)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Pyhton] 13275 14444 가장 긴 펠린드롬 부분 문자열 (0) | 2021.08.18 |
---|---|
[백준][Python] 13707 합분해 2 (2) | 2021.08.16 |
[백준][Python] 1913 달팽이 (0) | 2021.08.16 |
[백준][Python] 16139 컴퓨터 인간 상호작용 (0) | 2021.08.16 |
[백준][Python] 14676 영우는 사기꾼 (0) | 2021.08.16 |