힙은 매우 힙한 자료구조다. 힙은 일종의 완전 이진 트리이다. 주로 우선순위 큐를 구현하는데 밑받침이 되는 자료구조로 쓰인다. 트리 구조이기 때문에 삽입과 삭제에 O(logN)의 시간이 소요된다.개념자체는 크게 어렵지 않다. 힙은 최대힙(Max Heap) 또는 최소힙(
자바스크립트는 알고리즘 풀이에 좋은 언어는 아니다. (맨날 알고리즘 포스팅에 이 말을 하는 것 같다..) 다른 언어에 비해 지원되지 않는 부분이 있고, 이를 고려하지 않는 대부분의 알고리즘 시험 환경에서는 직접 자료구조를 구현해서 풀어야 통과하는 경우도 심심찮다. 그러
알고리즘 문제를 풀다보면 종종 순열이나 조합을 이용해 문제를 풀어야 할 때가 있다. 다른 언어의 경우엔 기본 라이브러리에 관련 함수가 이미 내장되어 있어 대부분의 코딩테스트에서 이를 사용할 수가 있지만 JS 에서는 아니나 다를까 이와 관련된 기본으로 내장된 라이브러리가
미루고 미루던 자바스크립트로 큐를 구현해야하는 순간이 오고야 말았다. 알고리즘 문제를 풀다 보면 큐(Queue) 자료구조를 이용해서 문제를 해결하는 경우를 종종 만날 수 있다. 대표적으로 BFS 알고리즘을 적용할 때 또는 우선순위 큐 등이 있다. 다른 언어의 경우는 보