문제요약:
Given a 2D vector intervals, which is a vector of meeting time vectors {start_time, end_time},
determine if a person could attend all meetings.
제약:
0 <= intervals.length <= 10^4
intervals[i].length == 2
0 <= start_time[i] < end_time[i] <= 10^6
예제 1 입력. | 예제 1 출력. |
[[0,30],[5,10],[15,20]] | false |
예제 2 입력. | 예제 2 출력. |
[[7,10],[2,4]] | true |
정답코드:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
class Solution {
public:
enum TimeType {StartTime, EndTime};
bool canAttendMeetings(vector<vector<int>>& intervals) {
if (intervals.size() == 0)
{
return true;
}
// sort by endtime, ascending order.
sort(intervals.begin(), intervals.end());
for (int i = 0; i < intervals.size() - 1; i++)
{
if (intervals[i][EndTime] > intervals[i+1][StartTime])
{
return false;
}
}
return true;
}
};
|
cs |
핵심 Idea:
2차원 vector sorting은 따로 compare용 static 함수를 지정하지 않으면 element 기준으로 된다.
{{3, 4}, {1, 6}, {2, 9}} ==> {{1,6}, {2,9}, {3,4}}
'알고리즘 문제풀이' 카테고리의 다른 글
[알고리즘] LeetCode 102번 "Binary Tree Level Order Traversal" (C/C++) - Don 임베디드 (0) | 2022.10.21 |
---|---|
[알고리즘] LeetCode 268번 "Missing Number" (C/C++) - Don 임베디드 (0) | 2022.10.05 |
[알고리즘] LeetCode 66번 "Plus One" (C/C++) - Don 임베디드 (0) | 2022.09.29 |
[알고리즘] LeetCode 202번 "Happy Number" (C/C++) - Don 임베디드 (0) | 2022.09.29 |
[알고리즘] LeetCode 746번 "Min Cost Climbing Stairs" (C/C++) - Don 임베디드 (0) | 2022.09.28 |