[자료구조] 우선순위 큐 - 힙으로 구현 (JavaScript)
·
자료구조 · 알고리듬/자료구조
🍞 우선순위 큐란?1) 큐(Queue)란?선입선출(FIFO - First In Frist Out) 자료구조다.먼저 들어온 데이터가 먼저 나간다. 2) 우선순위 큐(Priority Queue)란?우선순위 큐는 선입선출(FIFO)이 아닌, 우선순위(Priority)가 가장 높은 데이터가 먼저 나가는 자료구조다.우선순위가 가장 높은 데이터가 맨 앞에 있다.🍞 힙(Heap) 이란?완전 이진 트리 형태를 기본으로 한다. 최대값이나 최솟값을 찾아내기 위해 고안되었다. 따라서 루트노드는 가장 큰 값이나 가장 작은 값을 가진다.느슨한 이진트리다. 부모 자식간에 대소관게를 성립하지만, 형제사이는 신경쓰지 않는다.  트리지만 완전 이진트리이기 때문에 배열로 데이터를 저장할 수 있다.본인 인덱스에서 * 2 + 1 를 하..
[알고리듬] 하노이의 탑 (프로그래머스 Lv.2 하노이의 탑 JavaScript)
·
자료구조 · 알고리듬/알고리듬
프로그래머스 Lv.2 하노이의 탑 바로가기🧊 하노이의 탑 게임1) 게임 설명3개의 기둥과 원반들이 있다. 다음 조건을 지키면서 모든 원반들을 C에 옮겨라. 1. 한 번에 원반 하나만 옮길 수 있다. 2. 본인보다 작은 원반 위에 올릴 수 없다.2) 재귀 : 문제 해결의 포인트위 하노이의 탑 게임은 알고리듬을 배울 때 가장 처음 배우는 문제다. '재귀'를 설명하기 가장 좋은 문제이기 때문이다. 하노이의 탑 문제를 어떻게 해결 하면 좋을까? 한번 생각해보자. 규칙을 지키면서 A 그대로 C에 옮기려면, 가장 밑에 있는 원반4을 C바닥에 놓아야할 것이다. 가장 밑에 있는 원반4를 C로 옮기려면 어떻게 해야할까? 나머지 원반들을 B로 옮겨놓아야 한다. 이를 일반화해보자. n개의 원판이 주어졌을 때, n-1까지 원..
[JavaScript] 자바스크립트 배열은 객체다?!
·
개발/JavaScript
🧊  Prototype of Array is Object.일반적인 배열 하나를 선언하고 출력해보았다.const arr = [3, 6, 9];console.log(arr);  0,1,2 순서대로 잘 출력되고, 프로토타입도 Array인데 무슨 배열이 객체라는 걸까? 그렇다면 Array를 펼쳐보자.  Array를 펼쳐서 살펴보니 프로토타입이 Object라고 나온다! 그렇다. Array는 객체를 이어받아 만든 자료구조다.   🧊  숫자는 프로퍼티의 key일뿐.1) 객체 프로퍼티에 접근하는 법객체의 프로퍼티에 접근하기 위해서는 두가지 방법이 있다. 아래와 같이 . (점)을 사용하는 방법과, 대괄호로 접근하는 방법이 있다.computer.namecomputer["name"] 하지만 숫자는 . (점)을 사용할 수..