(Leetcode) 252 - Meeting Room 풀이 (Meeting Schedule)
기회가 되어 달레님의 스터디에 참여하여 시간이 될 때마다 한문제씩 풀어보고 있다.
- https://leetcode.com/problems/meeting-rooms/description/
- https://neetcode.io/problems/meeting-schedule
유료 문제이다. neetcode에서 풀어보는 기능이 있어서 neetcode에서 풀어보았다. input 갯수가 다르려나 싶다.
내가 작성한 풀이
public class Solution {
public boolean canAttendMeetings(List<Interval> intervals) {
intervals = intervals.stream().sorted(Comparator.comparingInt(o -> o.start)).toList();
for (int i = 0; i < intervals.size() - 1; i++) {
if(intervals.get(i).end > intervals.get(i+1).start) {
return false;
}
}
return true;
}
}
- 입력값을 정렬한다.
- 정렬된 list에서 중복되는 부분이 있는지 확인한다.
- i의 end 가 i+1의 start 보다 크면 중복된다.
TC, SC
시간 복잡도는 O(nlogn)이고 공간 복잡도는 O(n)이다. 여기서 nlogn 인 이유는 정렬이 들어가기 때문이다. O(n)인 이유는 정렬된 list를 생성하기 때문이다.