증감배열을 만들어서 풀어준다.
- 증감배열 시작점에 1을 끝나는지점 다음을 -1을 더해준다.
- 증감배열을 돌면서 높이를 계산한다
- 높이가 0이 아니라면 너비를 1더해주고 높이의 최대값을 구한다.
- 높이가 0이라면 면적을 구한다.
N = int(input())
calendar = [0]*367
arr = []
for _ in range(N):
s, e = map(int, input().split())
calendar[s] += 1
calendar[e+1] -= 1
width = 0
height = 0
answer = 0
for i in range(1, 367):
calendar[i] += calendar[i-1]
if calendar[i] == 0:
answer += width*height
width = 0
height = 0
else:
width += 1
height = max(height, calendar[i])
print(answer)
최근댓글