[์ž๋ฃŒ๊ตฌ์กฐ] ํŠธ๋ฆฌ์™€ ์ด์ง„ํŠธ๋ฆฌ
Computer Science/์ž๋ฃŒ๊ตฌ์กฐ 2021. 11. 11. 01:16

ํŠธ๋ฆฌ๋ž€? ๊ทธ๋ž˜ํ”„์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค. ํŠธ๋ฆฌ๋Š” ๋…ธ๋“œ๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํŠธ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ๊ฐ–๋Š”๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๋Š” 0๊ฐœ ์ด์ƒ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ๊ทธ ์ž์‹๋“ค๋„ ๋ชจ๋‘ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ๋…ธ๋“œ๋“ค๊ณผ ๋…ธ๋“œ๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ์—ฃ์ง€๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ด ์—ฐ๊ฒฐ๋œ ์—ฃ์ง€๋“ค์€ ์ ˆ๋Œ€๋กœ ์‚ฌ์ดํด์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์‚ฌ์ดํด์ด ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„์„ ์ˆ˜๋Š” ๋ฌด์กฐ๊ฑด ๋…ธ๋“œ์˜ ์ˆ˜ - 1 ์„ ๋งŒ์กฑํ•œ๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋…ธ๋“œ๋“ค์€ ๋‹จ ํ•˜๋‚˜์˜ ๋ถ€๋ชจ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง„๋‹ค. ๋ฃจํŠธ์—์„œ ์–ด๋–ค ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๋Š” Uniqueํ•˜๋‹ค. ํŠธ๋ฆฌ์™€ ๊ด€๋ จ๋œ ์šฉ์–ด depth : ๋ฃจํŠธ์—์„œ ์–ด๋–ค ๋…ธ๋“œ์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ์—ฃ์ง€์˜ ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. height : ๋ฃจํŠธ๋…ธ๋“œ์—์„œ ์žŽ์ƒˆ๋…ธ๋“œ์— ์ด๋ฅด๋Š” ๊ฐ€์žฅ ๊ธด ๊ฒฝ๋กœ์˜ ์—ฃ์ง€ ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ..

[์ž๋ฃŒ๊ตฌ์กฐ] ํž™
Computer Science/์ž๋ฃŒ๊ตฌ์กฐ 2021. 11. 9. 22:20

์šฐ์„ ์ˆœ์œ„ ํ๋ž€? ์šฐ์„ ์ˆœ์œ„์˜ ๊ฐœ๋…์„ ํ์— ๋„์ž…ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๋“ค์ด ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ„๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋ฐฐ์—ด, ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, ํž™ ์œผ๋กœ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ์ค‘์—์„œ ํž™(heap)์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ์œจ์ ์ด๋‹ค. ํž™์ด๋ž€? ์™„์ „์ด์ง„ํŠธ๋ฆฌ ๊ตฌ์กฐ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๋ฝ‘์•„๋‚ผ ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ํž™์€ ์™„์ „ํžˆ ์ •๋ ฌ๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ Level์— ๋”ฐ๋ฅธ ์ •๋ ฌ๋งŒ ์ด๋ฃจ์–ด์ ธ ๋Š์Šจํ•œ ์ •๋ ฌ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค. (Max Heap์ธ ๊ฒฝ์šฐ ๋ถ€๋ชจ๊ฐ€ ์ž์‹๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , Min Heap์ธ ๊ฒฝ์šฐ ๋ถ€๋ชจ๊ฐ€ ์ž์‹๋ณด๋‹ค ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•จ) ํž™์˜ ์ข…๋ฅ˜ Max Heap ๋ฃจํŠธ ๋…ธ๋“œ์—๋Š” ํ•ญ์ƒ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ์œ„์น˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ๋…ธ๋“œ๋“ค๋ณด๋‹ค ๋ฌด์กฐ๊ฑด ๊ฐ’์ด ์ปค์•ผํ•œ๋‹ค. M..

์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
Computer Science/์ž๋ฃŒ๊ตฌ์กฐ 2021. 10. 7. 23:22

์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ž€? ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์— ์ €์žฅ๋˜์ง€ ์•Š๋Š” ์„ ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋ฉฐ, ๊ฐ ๋…ธ๋“œ๋Š” ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•ด ์„œ๋กœ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์ ‘๊ทผํ•œ๋‹ค. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ํŠน์ง• ์žฅ์  ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ์š”์†Œ์˜ ์ˆ˜๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›์„ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ณต๊ฐ„์„ ์ถ”๊ฐ€๋กœ ํ• ๋‹น๋ฐ›๊ฑฐ๋‚˜ ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ๋“ค์˜ ์œ„์น˜๋ฅผ ์ด๋™์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์—†์–ด์„œ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ๊ฐ€ ์šฉ์ดํ•˜๋‹ค. ๋‹จ์  ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ํŠน์ • ์ธ๋ฑ์Šค์˜ ์œ„์น˜์— O(1)์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ณ  ์•ž์—์„œ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์š”์†Œ๋ฅผ ํƒ์ƒ‰ํ•ด์•ผํ•œ๋‹ค. ๊ฐ ๋…ธ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ๊ณต๊ฐ„๋„ ์ถ”๊ฐ€์ ์œผ๋กœ ํ•„์š”ํ•˜๋‹ค. ์ฝ”๋“œ๋กœ ๋ณด๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋…ธ๋“œ ๊ตฌํ˜„ class Node { private Node left; private Node right; private final int data; ..

์Šคํƒ(Stack)
Computer Science/์ž๋ฃŒ๊ตฌ์กฐ 2021. 10. 6. 22:20

Stack์ด๋ž€? LIFO(Last in First Out, ํ›„์ž… ์„ ์ถœ), ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด ํ•œ๊ณณ์œผ๋กœ ์ œํ•œ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ Stack ์˜ˆ์‹œ ์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜์˜ ์ฝœ์Šคํƒ, ์Šคํƒ์ด ๋„˜์น˜๊ฒŒ ๋˜๋ฉด StackOverFlow๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋ฌธ์ž์—ด ์—ญ์ˆœ ์ถœ๋ ฅ, ์—ฐ์‚ฐ์ž ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค. ์ฝ”๋“œ๋กœ ์ดํ•ดํ•˜๋Š” Stack class Stack { List list = new ArrayList(); private final int STACK_MAX_SIZE; private int top = 0; public Stack(int STACK_MAX_SIZE) { this.STACK_MAX_SIZE = STACK_MAX_SIZE; } void push(int data) { if(isFull()) return ; list.add(to..