Skip to content

Commit 96adba5

Browse files
committed
알고리즘 풀이
1 parent 1e48d75 commit 96adba5

4 files changed

Lines changed: 83 additions & 2 deletions

File tree

Heap/Heap1.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import java.util.*;
2+
3+
class Solution {
4+
public int solution(int[] scoville, int K) {
5+
int answer = -1;
6+
int idx = 0;
7+
int s1 = 0, s2 = 0;
8+
int temp;
9+
10+
PriorityQueue<Integer> q = new PriorityQueue<Integer>(scoville.length);
11+
12+
for (int e : scoville) {
13+
q.offer(e);
14+
}
15+
16+
while (q.size() > 1) {
17+
if (q.peek() >= K) {
18+
answer = idx;
19+
break;
20+
}
21+
22+
s1 = q.poll();
23+
s2 = q.poll();
24+
temp = s1 + (s2 * 2);
25+
q.offer(temp);
26+
idx++;
27+
}
28+
29+
if (q.poll() >= K) {
30+
answer = idx;
31+
}
32+
33+
return answer;
34+
}
35+
}

Heap/Heap2.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class Solution {
2+
public int[] topKFrequent(int[] nums, int k) {
3+
HashMap<Integer, Integer> m = new HashMap<Integer, Integer>(nums.length);
4+
5+
for (int num : nums) {
6+
m.put(num, m.getOrDefault(num, 0) + 1);
7+
}
8+
9+
List<Integer> list = m.entrySet().stream()
10+
.sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
11+
.map(Map.Entry::getKey).collect(Collectors.toList());
12+
13+
int[] result = new int[k];
14+
15+
for (int i = 0; i < k; i++) {
16+
result[i] = list.get(i);
17+
}
18+
19+
return result;
20+
}
21+
}

Heap/ReadMe.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Heap
2+
---
3+
4+
- **완전 이진 트리 일종** 우선 순위 큐를 위하여 만들어진 자료구조
5+
- 여러 개의 값들 중 최댓 값 or 최솟 값을 빠르게 찾아 내기 위한 자료구조
6+
- **반 정렬 상태(느슨한 정렬 상태)**
7+
8+
## Heap 종류
9+
---
10+
11+
- 최대 힙
12+
- 부모 노드 >= 자식 노드
13+
- Java에서 PriorityQueue<E>();
14+
- 최소 힙
15+
- 부모 노드 <= 자식 노드
16+
- Java에서 PriorityQueue<Integer>(Collections.reverseOrder());
17+
18+
-> 자바에서 우선순위 큐를 이용하면 쉽게 구현 할 수 있다.

ReadMe.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,17 @@
3434
- leetcode 21
3535
- leetcode 148
3636

37-
# 4주차 자료구조와 알고리즘
37+
# 5주차 자료구조와 알고리즘
38+
---
39+
40+
- [](./Heap)
41+
- leetcode 347
42+
- Programmers 더 맵게
43+
44+
# 6주차 자료구조와 알고리즘
3845
---
3946

4047
- [트리](./Tree)
4148
- leetcode 104
42-
- leetcode 203
49+
- leetcode 230
4350
- leetcode 617

0 commit comments

Comments
 (0)