728x90 ๋ฐ์ํ ๐ป Computer Science53 Hash table & BST(Binary Search Tree) ๋? BST (Binary Search Tree) ๋? ์ด์งํ์ํธ๋ฆฌ(Binary Search Tree; BST)๋ ์ ๋ ฌ๋ tree์ด๋ค. ์ด๋ node๋ฅผ ์ ํํ๋ ํด๋น node์ left subtree์๋ ๊ทธ node์ ๊ฐ๋ณด๋ค ์์ ๊ฐ๋ค์ ์ง๋ node๋ค๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๊ณ , node์ right subtree์๋ ๊ทธ node์ ๊ฐ๋ณด๋ค ํฐ ๊ฐ๋ค์ ์ง๋ node๋ค๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ binary tree์ด๋ค. ๊ฒ์๊ณผ ์ ์ฅ, ์ญ์ ์ ์๊ฐ๋ณต์ก๋๋ ๋ชจ๋ O(logn)์ด๊ณ , worst case๋ ํ์ชฝ์ผ๋ก ์น์ฐ์น tree๊ฐ ๋์ ๋ O(n)์ด๋ค. BST๋ ์ ์ฅ๊ณผ ๋์์ ์ ๋ ฌ์ ํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋ฐ๋ผ์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ผ์ ํ ๊ท์น์ ๋ฐ๋ผ ์ ์ฅ์ ํ๊ฒ๋๋ค. ์๋ ์๋ฆฌ๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช ํ ์ ์์ผ๋ฉด ์ข๋ค. ์ด์งํ์ํธ๋ฆฌ๊ฐ.. 2023. 5. 25. [์๋ฃ๊ตฌ์กฐ] ํ Queue & ์คํ Stack & ์ฐ์ ์์ํ priority queue & ํ Heap ์ด๋? Queue ํ ๋? queue๋ ์ ์ ์ ์ถ FIFO(First In Frist Out)์ ์๋ฃ๊ตฌ์กฐ์ด๋ค ์๊ฐ๋ณต์ก๋๋ enqueue O(1), dequeue O(1) ์ ๋๋ค. ํ์ฉ ์์ Cache ๊ตฌํ, ํ๋ก์ธ์ค ๊ด๋ฆฌ, ๋๋น์ฐ์ ํ์(BFS) ๋ฑ์ด ์์ต๋๋ค. FIFO (First In First Out) ์ด๋? queue๋ ์๊ฐ ์์์ ๋จผ์ ์ง์ด ๋ฃ์ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋์ค๋ ์ ์ ์ ์ถ FIFO(First In First Out) ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. enqueue & dequeue queue์์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ enqueue๋ผ๊ณ ํ๋ค. queue์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ๊ฒ์ dequeue๋ผ๊ณ ํ๋ค. enqueue์ ๊ฒฝ์ฐ queue์ ๋งจ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ฉด ์๋ฃ๋๊ธฐ ๋๋ฌธ์ ์๊ฐ๋ณต์ก๋๋ O(.. 2023. 5. 25. Process & Thread ๋? (multi process & multi thread & Deadlock ์ ๋ฆฌ) Process ๋? ์คํํ์ผ(program)์ด memory์ ์ ์ฌ๋์ด CPU๋ฅผ ํ ๋น๋ฐ์ ์คํ๋๋ ๊ฒ์ process๋ผ๊ณ ํ๋ค. ์ด์์ฒด์ ๋ฅผ ๊ดํตํ๋ ํต์ฌ์ ์ธ ๋จ์ด ํ๋๋ฅผ ๋ฝ๋๋ค๋ฉด Process์ด๋ค. ์ด์์ฒด์ ๊ฐ ์๋ํ๋ ๋ค์ํ ์๋ฆฌ๋ค์ด ๋ฐ๋ก Process๋ฅผ ์ํด ์กด์ฌํ๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ process์ ์ ์๋ฅผ ์ ์ดํดํ๋ค๋ฉด ์ด์์ฒด์ ์ ๋ค๋ฅธ ๋ด์ฉ๋ค์ ์ดํดํ๊ธฐ ํธํ๋ค. process๋ฅผ memory์ CPU๊ด์ ์ผ๋ก ์๊ฐํ๊ธฐ! Process ํ๋ก์ธ์ค(process)๋ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ(program in execution)์ ๋ปํ๋ค. ์ฆ, ์คํํ์ผ ํํ๋ก ์กด์ฌํ๋ program์ด memory์ ์ ์ฌ๋์ด CPU์ ์ํด ์คํ(์ฐ์ฐ)๋๋๊ฒ์ process๋ผ๊ณ ํ๋ค. ( + program์ ๋จ์ํ ๋ช ๋ น์ด ๋ฆฌ์คํธ๋ฅผ ํฌํจํ๋.. 2023. 5. 23. ๋์์ฑ (Concurrency)๊ณผ ๋ณ๋ ฌ์ฑ (Parallelism) ๋์์ฑ (Concurrency) ํ๋์ ์ฝ์ด์์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋ฒ๊ฐ์๊ฐ๋ฉฐ ์คํ ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ ์ฑ๊ธ ์ฝ์ด, ๋ฉํฐ ์ฝ์ด์์ ๋ชจ๋ ๊ตฌํ ๊ฐ๋ฅ ๋ ผ๋ฆฌ์ ์ธ ๊ฐ๋ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ๋์์ ์ฌ๋ฌ ์์ ์ ์ํํ๋ค. ๋์ผ๋ก ๋ณด๊ธฐ์๋ ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ์๋ถํ (Interleaving) ๊ธฐ๋ฒ์ ํ์ฉํ์ฌ CPU๊ฐ ์์ ๋ง๋ค ์๊ฐ์ ๋ถํ ํด์ ์ ์ ํ๊ฒ ๋ฌธ๋งฅ ๊ตํ(context switching) ํ๋ค. ๋๋ฌธ์, ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๊ฒ์ด๋ค. ๋์์ฑ์ ๊ตฌํํ๋ ๊ฒ๋ ๋๋ฒ๊ทธํ๋ ๊ฒ๋ ์ด๋ ต๋ค. ๋์์ฑ์ ํต์ฌ ๋ชฉํ๋ ์ ํด ์๊ฐ(idle time)์ ์ต์ํํ๋ ๊ฒ์ด๋ค. * ์ ํด ์๊ฐ์ด๋(idle time)? ์ปดํจํฐ๊ฐ ์๋ ๊ฐ๋ฅํ๋ฐ๋ ์์ ์ ํ์ง ์๋ ์๊ฐ์ ์๋ฏธํ๋ค. Task 1 ๊ณผ Task 2 ๋ฅผ ์ชผ.. 2023. 5. 22. ์ด์ 1 ยทยทยท 10 11 12 13 14 ๋ค์ 728x90 ๋ฐ์ํ