๋น์ ๊ณต์์ ์ ๊ณต์ ๋ฐ๋ผ์ก๊ธฐ - ์๋ฃ๊ตฌ์กฐ(with JavaScript)
์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ์ ํ์ ์ ์๊ณผ๋ชฉ์ธ ์๋ฃ๊ตฌ์กฐ! ๋ค์ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ฐฐ์๋ด ์๋ค!
์๊ฐ์ 448๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ

- ํด๊ฒฐ
์คํ, ํ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๊ตฌํ ๊ณผ์ ์๋ฃ์ ๋๋ค!
Stack// ์์ : Stack์ LinkedList๋ก ๊ตฌํํ๊ธฐ(๋จ, ์๊ฐ๋ณต์ก๋๋ O(1)) class Stack { tail = nu
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆEunji Lee
ใป
10๋ฌ ์
0
81
1
- ๋ฏธํด๊ฒฐ
heapify ์์ bigger ์ผํญ์ฐ์ฐ์ ์ง๋ฌธ
#heapify(index) { // ํน์ ๊ฐ ์์ , ์ญ์ const leftIndex = index * 2 + 1; const rightIndex = index * 2 +
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆsamkookji12
ใป
0
107
2
- ๋ฏธํด๊ฒฐ
LinkedList๋ก ์คํ, ํ ๊ตฌํํ๊ธฐ ์์
์คํ ๋ถ๋ถclass Stack { head=null; tail=null; length=0; push(value) { if (this.h
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆsamkookji12
ใป
0
112
1
- ๋ฏธํด๊ฒฐ
linkedList prev์ tail ์ฌ์ฉ ํ o(1) ๊ตฌํ.
class LinkedList { length = 0; head = null; tail = null; add(value) { if (this.head) { this.
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆsamkookji12
ใป
0
160
1
- ๋ฏธํด๊ฒฐ
์์ : LinkedList๋ก Stack, Queue ๊ตฌํํ๊ธฐ
queue : enqueue, dequeue, peekclass Node { prev = null; next = null; constructor(value) { this.value = value; } } class
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆyeolan
ใป
0
174
1
- ๋ฏธํด๊ฒฐ
์ฐ๊ฒฐ๋ฆฌ์คํธ ์์
prev์ tail์ ์ด์ฉํด์ ๋ง๋ค์ด ๋ดค์ต๋๋ค! ๊ถ๊ธํ์ ์ด ํ๋ ์๋๋ฐ remove ๋ฉ์๋์ if (current)์ else ๋ถ๋ถ์ ํ์ํ์ง ์์๊ฒ ๊ฐ์์ ๊ตฌํํ์ง ์์๋๋ฐ ๋ฌธ์ ๊ฐ ์์ง๋ ์๋์?<code class="
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆ์์ฑ์ ์์
ใป
0
233
1
- ๋ฏธํด๊ฒฐ
ํ๋ฒ์ ์ดํด ์๊ฐ๋ ์ ๊ฐ ๋น์ ์ ์ผ๊น์...?
ํด์ ํ ์ด๋ธ๊น์ง ์ฌ๋ฐ์๋๋ฐ ๋ ๋ ๋ธ๋ํธ๋ฆฌ ๋๋ฌด ์ด๋ ค์ด๊ฒ ๊ฐ์ต๋๋ค ใ ใ ...๋ฐ๋ณต ์๋ฌ์ด ๋ต์ด๊ฒ ์ฃ ?
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆrhkdtjd_12
ใป
0
228
1
- ํด๊ฒฐ
์ฐ์ ์์ ํ ์ง๋ฌธ์ด ์์ต๋๋ค!
์ฐ์ ์์ ํ ๊ฐ์๋ฅผ ์ฌ๋ฏธ์๊ฒ ๋ณด์๋๋ฐ, ํ์ ์ฐ์ ์์ํ๊ฐ ๋จผ์ ์คํ ๋๋๊ฒ์ ์คํํ๋ ์ฐจ์ด๋ง๊ณ ๋ ๋๊ฐ์๊ฒ ๊ฐ์๋ฐ ๊ตฌํ ์ฝ๋๋ ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉ ํ์๋๋ผ๊ณ ์! ๊ทธ๋ ๋ค๋ฉด ํ๊ณผ ์ฐ์ ์์ ํ๊ฐ ๋น์ทํ๊ณ ์ฐ์ ์์ ํ๊ฐ ํ๋ ๋น์ทํ๋๊น ํ๊ณผ ํ๋ ๋น์ทํ๊ฑด๊ฐ์
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆrhkdtjd_12
ใป
0
147
1
- ํด๊ฒฐ
[์์ ] minHeap ๊ตฌํ, maxHeap -> minHeap , minHeap -> maxHeap
minHeap ๊ตฌํclass MinHeap { // ์ต์ํ arr = []; #reheapUp(index) { if (index > 0) { con
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆrhkdtjd_12
ใป
1
230
1
- ๋ฏธํด๊ฒฐ
์ต์ํ remove ๊ตฌํํ๊ธฐ
class MinHeap { // ์ต์ํ arr = []; #reheapUp(index) { if (index > 0) { const parentIndex = Ma
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆrhkdtjd_12
ใป
0
240
1
- ๋ฏธํด๊ฒฐ
์์ ์ต์ํ ๋ง๋ค๊ธฐ
class Heap { arr = []; #reheapUp(index) { if (index > 0) { const parentIndex = Math.floor((in
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆrhkdtjd_12
ใป
0
150
1
- ๋ฏธํด๊ฒฐ
์์ length return ํ๊ธฐ
class Node { constructor(value) { this.value = value; this.left = null; this.right = null; } }
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆrhkdtjd_12
ใป
0
183
1
- ๋ฏธํด๊ฒฐ
์์ : ๊ฐ์ ๊ฐ์ ๋ฃ์๊ฒฝ์ฐ ์๋ฌ ์ฒ๋ฆฌ
class Node { constructor(value) { this.value = value; this.left = null; this.right = null; } }
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆrhkdtjd_12
ใป
0
176
1
- ํด๊ฒฐ
์์ ์ค๊ฐ์ 0:10 1:23์ด ์์ ์ ๋ฐ๋ฅธ ์ฝ๋ ์ต์ข ๋ณธ
class Node { constructor(value) { this.value = value; this.left = null; this.right = null; } }
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆrhkdtjd_12
ใป
1
137
1
- ๋ฏธํด๊ฒฐ
์์ 2 ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ์ฌ ํ ๊ตฌํํ๊ธฐ
ํ์ต ๋ชฉํ- ๋ฐฐ์ด ์นํธํค ์๋ฃ๊ตฌ์กฐ๊ฐ ์๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ์ฌ queue ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ์.- ์ฝ์ ๊ณผ ์ญ์ ๋ฅผ ์๊ฐ๋ณต์ก๋
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆrhkdtjd_12
ใป
0
227
1
- ๋ฏธํด๊ฒฐ
์์ 1 LinkedList๋ก ์คํ ๊ตฌํํ๊ธฐ
ํ์ต ๋ชฉํ- ๋ฐฐ์ด ์นํธํค ์๋ฃ๊ตฌ์กฐ๊ฐ ์๋ ์ฐ๊ฒฐ ๋ฆฌ์ค๋ฅผ ์ด์ฉํ์ฌ stack ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ์.- ์ฝ์ ๊ณผ ์ญ์ ๋ฅผ ์๊ฐ๋ณต์ก๋ O(1)๊ฐ ๋๊ฒ ํด์ผ๋จ.- stack์ FILO์ด๊ธฐ ๋๋ฌธ์ ์ญ์ ์ ๋ง์ง๋ง์ ์ญ์ ํด์ผ
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆrhkdtjd_12
ใป
1
244
1
- ํด๊ฒฐ
์ฐ๊ฒฐ ๋ฆฌ์คํธ ๊ตฌํ ์์ ๋ฆฌ๋ทฐ ๋ถํ๋๋ ค๋ด ๋๋ค
// ์์ 1 next๊ฐ ์๋ ์ด์ ๊ฒ prev๋ฅผ ๊ตฌํ๊ธฐ // ์์ 2 ์ฝ์ ์ด ์๊ฐ๋ณต์ก๋๊ฐ O(n)์ธ๋ฐ O(1)์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ (hint tail) class Node { constructor(value
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆrhkdtjd_12
ใป
1
338
2
- ๋ฏธํด๊ฒฐ
let current = this.head ์ง๋ฌธ ์์ต๋๋ค!
this.head ๋์ let current = this.head ์ฒ๋ผ current๋ณ์์ ํ ๋นํ์ฌ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ๋ฌด์์ผ๊น์?ใ ๋ณ์์ ํ ๋นํ์ฌ ์ฌ์ฉํ์ง ์์์ ๋ ๊ฐ์ ๋ณด๋ ๊ฐ์ด ๋ค๋ฅด๊ฒ ๋์ ๋ฌธ์๋๋ฆฝ๋๋ค. <img src
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆdo wang
ใป
0
248
1
- ๋ฏธํด๊ฒฐ
ํด์ฆ ๋ต์
ํด์ฆ ๋ต์์ง๋ ๋ฐ๋ก ์ ๊ณต๋์ง ์๋์?
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆ์ ์ค์
ใป
0
464
1
- ๋ฏธํด๊ฒฐ
์ต์ํ์ ๊ฒฐ๊ณผ๊ฐ๊ณผ ์ต๋ํ->์ต์ํ ๊ฒฐ๊ณผ๊ฐ์ด ๋ค๋ฅธ๊ฒ ๋ง๋์?
์ต์ ํ insert#reheapUp(index) { // index 0์ root if (index > 0) { // ๋ถ๋ชจ ๋ ธ๋๊ฐ root๊ฐ ์๋๋ฉด ๊ณ์ ๋น๊ต
javascript์ฝ๋ฉ-ํ ์คํธ์๊ณ ๋ฆฌ์ฆChoi Boo
ใป
0
243
1






