반응형
https://leetcode.com/problems/maximum-number-of-events-that-can-be-attended-ii/description/
Maximum Number of Events That Can Be Attended II - LeetCode
Can you solve this real interview question? Maximum Number of Events That Can Be Attended II - You are given an array of events where events[i] = [startDayi, endDayi, valuei]. The ith event starts at startDayi and ends at endDayi, and if you attend this ev
leetcode.com
events를 오름차순으로 정렬하고, 현재 이벤트를 선택 또는 미선택하는 경우를 분기하면서, 다음으로 선택 가능한 이벤트를 탐색해줍니다.
dp를 이용하여 시간을 단축시킬 수 있었습니다.
class Solution {
public:
int maxValue(vector<vector<int>>& events, int k) {
vector<vector<int>> dp(events.size(), vector<int>(k + 1, 0));
sort(events.begin(), events.end());
return dfs(events, 0, k, dp);
}
int dfs(vector<vector<int>>& events, int idx, int k, vector<vector<int>>& dp) {
if(k == 0 || idx >= events.size()) return 0;
if(dp[idx][k]) return dp[idx][k];
int nxt = idx + 1;
while(nxt<events.size() && events[idx][1] >= events[nxt][0])
nxt++;
return dp[idx][k] = max(
dfs(events, idx + 1, k, dp),
dfs(events, nxt, k - 1, dp) + events[idx][2]
);
}
};
반응형
'Algorithm' 카테고리의 다른 글
LeetCode 735. Asteroid Collision (0) | 2023.07.20 |
---|---|
LeetCode 445. Add Two Numbers II (0) | 2023.07.17 |
LeetCode 802. Find Eventual Safe States (0) | 2023.07.12 |
LeetCode 863. All Nodes Distance K in Binary Tree (0) | 2023.07.11 |
LeetCode 111. Minimum Depth of Binary Tree (0) | 2023.07.10 |