[Swift] ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List)๋Š” ์ง€ํ•˜์ฒ . (feat. ์„ค๊ตญ์—ด์ฐจ)

์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋…ธ๋“œ๋“ค์„ ํฌ์ธํ„ฐ๋กœ ์„ ํ˜•์ ์œผ๋กœ ์—ฐ๊ฒฐํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋…ธ๋“œ์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•œ ์†์„ฑ(value)์™€ ๋‹ค์Œ ๋…ธ๋“œ์˜ ์ฃผ์†Œ(pointer)๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์Šจ ๋ง์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด.. ์ด ๊ธ€์˜ ์ œ๋ชฉ์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋Š” ์ง€ํ•˜์ฒ .์„ ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ์Šต๋‹ˆ๋‹ค! (์„ค๊ตญ ์—ด์ฐจ๋Š” ๋’ค์—์„œ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.๐Ÿ˜Ž) ์ง€ํ•˜์ฒ ์€ ์—ฌ๋Ÿฌ ๊ฐ์‹ค๋“ค์ด ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ๊ฐ์‹ค์—๋Š” ์Šน๊ฐ(๋ฐ์ดํ„ฐ)๊ฐ€ ํƒ€๊ณ  ์žˆ๊ณ , ๊ฐ ๊ฐ์‹ค๋“ค์„ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฐ๊ฒฐ์„ (์—ฃ์ง€, ๋งํฌ)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ๋ฒˆ, ์ง€ํ•˜์ฒ ์„ ๋จธ๋ฆฌ ์†์— ๋– ์˜ฌ๋ฆฌ๋ฉฐ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์ •์˜์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด๋ณด์‹œ์ฃ . ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๋…ธ๋“œ(= ์ง€ํ•˜์ฒ  ๊ฐ์‹ค)๋“ค์„ ํฌ์ธํ„ฐ(= ์ง€ํ•˜์ฒ  ์—ฐ๊ฒฐ์„ )์œผ๋กœ ์—ฐ๊ฒฐํ•ด ์‚ฌ์šฉํ•˜๋Š” ์„ ํ˜•์  ์ž๋ฃŒ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์—์„œ๋Š” ๊ฐ์‹ค์„ ..

Computer/Data Structure 2024. 3. 1. 17:07
[Swift] ํ(Queue)๋Š” ์„ ์ฐฉ์ˆœ.

ํ๋Š” ์ด์ „์— ์‚ดํŽด๋ณธ ์Šคํƒ๊ณผ ์œ ์‚ฌํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, FIFO ์›์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์Šคํƒ์€ ๊ฐ€์žฅ ๋‚˜์ค‘์— ์ถ”๊ฐ€๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ์ถ”์ถœ๋˜์ง€๋งŒ, ํ๋Š” ๊ฐ€์žฅ ๋จผ์ € ์ถ”๊ฐ€๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ์ถ”์ถœ๋ฉ๋‹ˆ๋‹ค. (์Šคํƒ์— ๋Œ€ํ•ด ์•„์ง ์ž˜ ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด ๊ณต๋ถ€ํ•œ ํ›„ ๋‹ค์‹œ ์˜ค์‹œ๊ธฐ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์— ์„ค๋ช…ํ•œ ๋‚ด์šฉ์€ ๊ฐ„๋žตํ•˜๊ฒŒ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค! ๐Ÿ˜Ž) [Swift] ์Šคํƒ(Stack)์€ ํ”„๋ง๊ธ€์Šค. FIFO๋Š” First In First Out ์›์น™์œผ๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์—ด์— ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ถ”๊ฐ€ํ•˜๊ณ (Enqueue), ๊ฐ€์žฅ ๋จผ์ € ์ถ”๊ฐ€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ์ถ”์ถœํ•˜๋Š” ๊ฒƒ(Dequeue)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์Šจ ๋ง์ด์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด… ์ด ๊ธ€์˜ ์ œ๋ชฉ์ฒ˜๋Ÿผ ํ๋Š” ์„ ์ฐฉ์ˆœ.์„์ƒ๊ฐํ•˜๋ฉด ์‰ฝ์Šต๋‹ˆ๋‹ค! ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ญ”๊ฐ€๋ฅผ ์„ ์ฐฉ์ˆœ์œผ๋กœ ๊ตฌ๋งคํ•  ๋•Œ ์ƒˆ๋ฒฝ์— ์ผ์ฐ ๋‚˜๊ฐ€์„œ ์ค„์„ ์„œ๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•œ ์›๋ฆฌ์ž…๋‹ˆ๋‹ค. ์™œ..

Computer/Data Structure 2024. 1. 25. 22:48
[Swift] ์Šคํƒ(Stack)์€ ํ”„๋ง๊ธ€์Šค.

์Šคํƒ์€ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋กœ ์ผ์ฐจ์›์˜ ์„ ํ˜•(linear) ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฉฐ, LIFO ์›์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. LIFO๋Š” Last In First Out ์›์น™์œผ๋กœ, ๋ฐฐ์—ด์— ๋ฐ์ดํ„ฐ๋ฅผ ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ๋„ฃ๊ณ (Push), ๊ฐ€์žฅ ๋Šฆ๊ฒŒ ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ๊บผ๋‚ด๋Š” ๊ฒƒ(Pop)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์Šจ ๋ง์ด์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด… ์ด ๊ธ€์˜ ์ œ๋ชฉ์ฒ˜๋Ÿผ ์Šคํƒ์€ ํ”„๋ง๊ธ€์Šค.๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ์Šต๋‹ˆ๋‹ค! ํ”„๋ง๊ธ€์Šค๋ฅผ ํฌ์žฅํ•  ๋•Œ๋Š” ์•„๋ž˜๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์Œ“๊ฒ ์ง€๋งŒ, ์šฐ๋ฆฌ๊ฐ€ ๋จน์„ ๋•Œ๋Š” ์ œ์ผ ๋งˆ์ง€๋ง‰์— ๋„ฃ์€ ๊ณผ์ž๋ฅผ ๋จผ์ € ๋จน๊ฒ ์ฃ ! ์ด๋Ÿฐ ๊ฒƒ์„ ๋ฐ”๋กœ LIFO ์›์น™์„ ๊ฐ€์ง„ Stack ๊ตฌ์กฐ๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ •๋ฆฌํ•˜์ž๋ฉด! ์Šคํƒ์€ push ์—ฐ์‚ฐ์œผ๋กœ ๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ์‚ฝ์ž…ํ•˜๊ณ , pop ์—ฐ์‚ฐ์œผ๋กœ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ €์žฅ๋œ ๊ฐ’์„ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Swift๋กœ ..

Computer/Data Structure 2024. 1. 23. 01:02
์ž๋ฃŒ ๊ตฌ์กฐ(Data Structure), ์•Œ๊ณ ๋ฆฌ์ฆ˜(Algorithms) ๊ทธ๊ฒŒ ๋ญ์•ผ... ?

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ณต๋ถ€ํ•˜๋‹ค๋ฉด ๋ˆ„๊ตฌ๋‚˜ ํ•œ ๋ฒˆ์ฏค ๋“ค์–ด๋ณธ ๋‹จ์–ด๋“ค์ด ๋ช‡ ๊ฐœ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค. ์ €๋Š” ๊ทธ์ค‘ ์ œ์ผ ๋งŽ์ด ๋“ค์–ด ๋ณธ ๋‹จ์–ด๊ฐ€ ๋ฐ”๋กœ.. "์ž๋ฃŒ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜" ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์€ ์ตํžˆ ๋“ค์–ด์„œ ์•Œ๊ฒ ๋Š”๋ฐ... ๊ทธ๋ž˜์„œ ๊ทธ๊ฒŒ ์ •ํ™•ํžˆ ๋ญ”๋ฐ..? ๋ผ๋Š” ์ƒ๊ฐ์ด ๋ฌธ๋œฉ ๋“ค์–ด์„œ... ์˜ค๋Š˜๋ถ€ํ„ฐ ๊ทธ ๋‘ ๊ฐœ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ๊ธฐ๋ก์„ ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. (๊ทผ์—„, ์ง„์ง€๐Ÿ”ฅ) ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๋ชจ๋‘ ๊ธฐ๋ก ํ•˜์ง€๋Š” ๋ชปํ•˜๊ฒ ์ง€๋งŒ ์ตœ๋Œ€ํ•œ ์ค‘์š”ํ•œ ๋‚ด์šฉ ์œ„์ฃผ๋กœ ์•ผ๋ฌด์ง€๊ฒŒ ์˜ฌ๋ ค ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜Ž ๊ฐ€๋ณด์ž๊ตฌ ~ ์˜ค๋Š˜์€ ์ฒซ ๋‚ ์ด๋‹ˆ๊นŒ ! ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ฌด์—‡์ธ์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ“ ์ž๋ฃŒ ๊ตฌ์กฐ (Data Structures) ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋“ค์˜ ๋ชจ์ž„์„ ๋œปํ•˜๋ฉฐ, ์ •ํ•ด์ง„ ๋ฉ”๋ชจ๋ฆฌ(memory)๊ณต๊ฐ„์—์„œ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ž๋ฃŒ๋“ค์„ ์ฒ˜๋ฆฌํ•  ์ง€๋ฅผ ๊ตฌ์กฐํ™”ํ•ด์„œ ํ‘œ..

Computer/Data Structure 2024. 1. 16. 21:57