각 원소가 [시작, 끝]인 회의 배열 meetings가 주어져요. 시간이 겹치는 두 회의가 하나라도 있으면 true, 하나도 없으면 false를 반환해요.
한 회의가 끝나는 시각에 다른 회의가 시작하는 건 겹치는 것으로 보지 않아요(끝 = 다음 시작은 괜찮아요).
예시
예시 1
예시 2
제한 사항
- 1 ≤ meetings.length ≤ 100,000
- 0 ≤ 시작 < 끝 ≤ 1,000,000,000
시작 시각 기준으로 정렬한 뒤, 지금까지 본 회의들의 가장 늦은 끝 시각을 기억해요. 새 회의의 시작이 그 값보다 앞이면 겹치는 거예요. 정렬돼 있어서 한 번만 훑으면 돼요.
javascriptCopy codefunction meetingOverlap(meetings) {const sorted = [...meetings].sort((a, b) => a[0] - b[0]);let maxEnd = -Infinity;for (const [start, end] of sorted) {if (start < maxEnd) return true;maxEnd = Math.max(maxEnd, end);}return false;}
이전 문제랜선 자르기
다음 문제합이 target인 최단 구간
예시 테스트만 실행 (Cmd/Ctrl+Enter)
숨김 테스트까지 채점 (Cmd/Ctrl+Shift+Enter)
에디터를 불러오고 있어요…
코드를 작성하고Ctrl↵를 눌러 예시 테스트를 확인해 보세요.