[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
์‹œ๊ฐ„ ๋ณต์žก๋„ (Time Complexity), ๊ทธ๋ฆฌ๊ณ  ๊ณต๊ฐ„ ๋ณต์žก๋„ (Space Complexity)

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

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

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

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