20207번: 달력

 수현이는 일년의 날짜가 1일부터 365일로 표시되어있는 달력을 가지고있다. 수현이는 너무나도 계획적인 사람이라 올 해 일정을 모두 계획해서 달력에 표시해놨다.  여름이 거의 끝나가자 장

www.acmicpc.net


 

증감배열을 만들어서 풀어준다.

 

  1. 증감배열 시작점에 1을 끝나는지점 다음을 -1을 더해준다.
  2. 증감배열을 돌면서 높이를 계산한다
  3. 높이가 0이 아니라면 너비를 1더해주고 높이의 최대값을 구한다.
  4. 높이가 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)

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기