반응형
[C] LeetCode 2406. Divide Intervals into Minimum Number of Groups
Coding/PS2026. 5. 7. 21:50[C] LeetCode 2406. Divide Intervals into Minimum Number of Groups

문제번역2차원 정수 배열 intervals가 주어진다. intervals의 각 원소는 \( [ left_i, right_i ] \) 로 구성된다.이 intervals를 하나 이상의 그룹으로 나눠서 각 그룹마다 교집합이 없게 만들어야 한다.이때 우리가 만들 수 있는 최소한의 그룹의 수를 반환해라[1, 5] , [5, 8] 과 같이 하나의 수라도 겹치면 겹친다고 판단한다.접근 방법과 소스코드특정 시점에 동시에 겹치는 구간의 최대 개수를 구하면 된다.어떤 interval의 시작시간이 다른 interval의 끝나는 시간보다 크면 어떤 구간이 끝난 것이므로 그룹을 재사용할 수 있다.그게 아니라면 새로운 그룹이 필요한 경우이다. 이를 해결하기 위해 시작 시간과 끝나는 시간을 각각 정렬한 뒤 투포인터를 통해서 문제를..

[C] LeetCode 1353. Maximum Number of Events That Can Be Attended
Coding/PS2026. 5. 7. 21:15[C] LeetCode 1353. Maximum Number of Events That Can Be Attended

문제번역events 배열이 주어지고 events 배열의 각 원소는 [startDay_i, endDay_i]로 이루어져 있다.각 이벤트 i 는 startDay_i 날에 시작해서 endDay_i 날에 끝난다.우리는 이벤트가 열리는 날 중 하루만 참석할 수 있다. 이벤트는 하루에 한번만 참여할 수 있다.우리가 참석 가능한 이벤트의 최대 개수를 반환해라. 접근 방법과 소스코드그리디와 MinHeap을 써서 오늘 참석 가능한 이벤트 중 가장 빨리 끝나는 이벤트에 참석하면 된다.늦게 끝나는 이벤트는 나중에 참석할 수 있기에 빨리 끝나는 이벤트를 우선해서 고른다. 오늘 시작하는 이벤트를 MinHeap에 전부 넣는다. 그리고 오늘 이전에 끝난, 즉 내가 더이상 참석하지 못하는 이벤트는 전부 날린다.그 중 가장 빨리 끝나..

[C] LeetCode 215. Kth Largest Element in an Array
Coding/PS2026. 5. 7. 17:21[C] LeetCode 215. Kth Largest Element in an Array

문제번역정수 배열 nums와 정수 k가 주어질때, array에서 k번째로 가장 큰 원소를 반환해라.k번째 수는 정렬된 순서에서 k번째로 큰 수를 말하며, k번째의 구별되는 원소가 아니다. 정렬없이 구현해라.접근 방법과 소스코드대표적인 maxheap을 사용하는 문제이다.입력받은 수로 maxheap을 구성한다. 그러면 heap의 root는 첫번째로 가장 큰 수가 있을 것이다.이걸 k-1번 만큼 heap에서 pop을 하면 maxheap의 root는 k번째로 가장 큰 수가 담겨 있을 것이다.우린 이걸 pop 해서 반환해주면 된다. int heap[100001];int rsp = 0;void swap(int* a, int* b) { int t = *a; *a= *b; *b = t;}void pus..

반응형
image