Menu
CoddyTech

Meeting Rooms

쉬움구간정렬python iconjava iconcpp iconc iconjs icon+10

회의 목록을 두 개의 배열로 받습니다. 회의 i는 starts[i]부터 ends[i]까지 진행됩니다. 한 사람이 모든 회의에 참석하려고 하므로, 회의 두 개가 겹쳐서는 안 됩니다. 한 회의가 끝나는 바로 그 시점에 다른 회의가 시작할 수 있습니다. 그 사람이 모든 회의에 참석할 수 있으면 true를 반환하고, 그렇지 않으면 false를 반환하세요.

함수

canAttendMeetings(starts: integer-array, ends: integer-array) → boolean
startsinteger-array
각 회의의 시작 시간
endsinteger-array
각 회의의 종료 시간은 시작 시간과 같은 인덱스에 있습니다
반환값boolean
true(두 회의가 겹치지 않으면), 그렇지 않으면 false

제약 조건

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • 회의는 정렬되어 있지 않습니다. 두 회의가 동일할 수 있습니다.

예제

입력
starts = [9, 13, 10]ends = [10, 15, 12]
출력
true
설명
시간순으로 회의는 9시부터 10시까지, 10시부터 12시까지, 13시부터 15시까지 진행됩니다. 두 번째 회의는 첫 번째 회의가 끝나는 순간 시작하며, 이는 허용되므로 답은 true입니다.

lock icon제출 시 숨은 테스트 +15개

challenge icon

후속 질문

회의를 한 번에 하나씩 예약한다면, 모든 항목을 다시 정렬하지 않고 어떻게 새 예약을 일정과 O(log n)으로 확인할 수 있을까요?

코드 초기화
def canAttendMeetings(starts, ends):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

입력

starts = [9, 13, 10]
ends = [10, 15, 12]

기대값

true