본문 바로가기

maxheap2

[programmers] 야근 지수 2023.05.15 - [Study] - [algorithm] Max Heap 구현하기 [algorithm] Max Heap 구현하기 프로그래머스 기준 레벨이 3 정도 되면, Heap을 사용해야 하는 일이 생긴다. 하지만, 다른 언어와 달리 JavaScript에는 MaxHeap이 없기 때문에 직접 구현을 해서 사용해야 한다. 하나 만들어 둔 후, 문제 ktmihs.tistory.com 📝 [Lv3] 야근 지수 👀 문제 설명 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다. Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 .. 2023. 5. 16.
[algorithm] Max Heap 구현하기 프로그래머스 기준 레벨이 3 정도 되면, Heap을 사용해야 하는 일이 생긴다. 하지만, 다른 언어와 달리 JavaScript에는 MaxHeap이 없기 때문에 직접 구현을 해서 사용해야 한다. 하나 만들어 둔 후, 문제를 풀 때 갖다 쓰면 편하다. 배열의 index를 조정해 이진 트리 구조로 사용하였다. 자식 노드는 부모 노드의 2배만큼의 index를 갖는다. 계산을 쉽게 해주기 위해 0번 index에는 가장 큰 수를 할당하여 채워주었고, 실제로는 1 index부터 시작한다. constructor() { this.heap = []; this.heap.push(1e9); } 값을 추가(insert)하면 일단, 배열에 값을 넣어준 후, upheap을 해준다. upheap은 가장 마지막의 숫자가 자신의 부모보.. 2023. 5. 15.