๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ป Computer Science/์ž๋ฃŒ๊ตฌ์กฐ4

์ธ์ž(Argument)์™€ ํŒŒ๋ผ๋ฏธํ„ฐ(Parameter) ์ฐจ์ด `์ธ์ž(Argument)`์™€ `ํŒŒ๋ผ๋ฏธํ„ฐ(Parameter)`๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์šฉ์–ด์ž…๋‹ˆ๋‹ค. ์ด ๋‘ ์šฉ์–ด๋Š” ๋ฉ”์„œ๋“œ์—์„œ ๊ฐ’์ด ์ „๋‹ฌ๋˜๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์š”์•ฝ ํŒŒ๋ผ๋ฏธํ„ฐ(Parameter) ์ธ์ž(Argument) ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ „๋‹ฌ๋˜๋Š” ๊ฐ’ ํŒŒ๋ผ๋ฏธํ„ฐ(Parameter) ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ์˜ ์„ ์–ธ ๋ถ€๋ถ„์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง€์ •ํ•˜๋ฉฐ, ํ•ด๋‹น ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ์—๋Š” ์ „๋‹ฌ๋œ๋Š” ๊ฐ’์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋˜๋ฉฐ, ํ•ด๋‹น ๋ฉ”์„œ๋“œ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ๋‹ค์Œ์€ `x`์™€ `y`๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๊ฐ–๋Š” ๋ฉ”์„œ๋“œ ์„ ์–ธ์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. def add_numbers(x, y): .. 2024. 2. 16.
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.
Array & Dynamic Array & Linked List ๋ž€? ์ฐจ์ด์  Array์ด๋ž€? Array๋Š” ์—ฐ๊ด€๋œ Data๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์—ฐ์†์ ์ด๋ฉฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฏธ๋ฆฌ ํ• ๋‹น๋œ ํฌ๊ธฐ๋งŒํผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. Array์˜ ํŠน์ง• ๊ณ ์ •๋œ ์ €์žฅ ๊ณต๊ฐ„(fixed-size) ์ˆœ์ฐจ์ ์ธ ๋ฐ์ดํ„ฐ ์ €์žฅ(order) Array์˜ ์žฅ์ ์€ lookup๊ณผ append๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ์กฐํšŒ๋ฅผ ์ž์ฃผ ํ•ด์•ผ๋˜๋Š” ์ž‘์—…์—์„œ๋Š” Array ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งŽ์ด ์“ด๋‹ค. Array ์‹œ๊ฐ„๋ณต์žก๋„ Array access O(1) append O(1) ๋งˆ์ง€๋ง‰ ์›์†Œ delete O(1) insertion O(n) deletion O(n) search O(n) ์˜ˆ์ƒํ•œ Array์˜ size๋ณด๋‹ค ๋” ๋งŽ์€ ์ˆ˜์˜ data๋ฅผ ์ €์žฅํ•˜๊ฒŒ ๋  ๋•Œ, ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€? ๊ธฐ์กด size๋ณด๋‹ค ๋” ํฐ Array๋ฅผ ์„ ์–ธํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ฒจ ํ• ๋‹นํ•œ๋‹ค. ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ.. 2023. 5. 22.
728x90
๋ฐ˜์‘ํ˜•