ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table)์€ ๋„์„œ๊ด€.

ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table)์€ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํ•ด์‹œ ํ•จ์ˆ˜(Hash Function)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ฐ์ดํ„ฐ์˜ ํ‚ค(Key)๋ฅผ ํ•ด์‹œ ๊ฐ’(์ธ๋ฑ์Šค)์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ์ž„์˜์˜ ๊ธธ์ด๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ํ•ด์‹œ ๊ฐ’์œผ๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋Š” ํ…Œ์ด๋ธ” ๋‚ด์˜ ์ฃผ์†Œ(์ธ๋ฑ์Šค)๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ณ€ํ™˜๋œ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”(Slot, Bucket)์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ‚ค๊ฐ€ 123817์ธ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์‹œ ํ•จ์ˆ˜์— ๋„ฃ์œผ๋ฉด 3819์™€ ๊ฐ™์€ ํ•ด์‹œ ๊ฐ’์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด ํ•ด์‹œ ๊ฐ’์€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ํ…Œ์ด๋ธ” ๋‚ด์˜ ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฌด์Šจ ๋ง์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด.. ์ด ๊ธ€์˜ ์ œ๋ชฉ์ฒ˜๋Ÿผ ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ๋„์„œ๊ด€.์„ ์ƒ..

Computer/Data Structure 2024. 3. 8. 18:39
[Swift] ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List)๋Š” ์ง€ํ•˜์ฒ . (feat. ์„ค๊ตญ์—ด์ฐจ)

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

Computer/Data Structure 2024. 3. 1. 17:07
[Terms] UUID/๋ฒ”์šฉ ๊ณ ์œ  ์‹๋ณ„์ž

์˜ค๋Š˜์€ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜๋‹ค๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ ์šฉ์–ด UUID์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๐Ÿค“ (ํ•ด๋‹น ๋ธ”๋กœ๊ทธ์—์„œ๋Š” UICollectionViewCell์ด ์žฌ์‚ฌ์šฉ๋  ๋•Œ ์–ด๋–ค ์ˆœ์„œ๋กœ dequeue๋˜์–ด ์žฌ์‚ฌ์šฉ๋˜๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋ ค๊ณ  UUID๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋”๋ผ๊ณ ์š”!) UUID๊ฐ€ ๋ญ”์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค. UUID(Universally Unique Identifier) UUID๋Š” Universally Unique IDentifier์˜ ์•ฝ์–ด์ด๊ณ  ๋ฒ”์šฉ ๊ณ ์œ  ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ๊ณ ์œ ์„ฑ์ด ๋ณด์žฅ๋˜๋Š” ID๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ๊ทœ์•ฝ์œผ๋กœ, OSF(Open Software Foundation)์—์„œ ์ œ์ •ํ•œ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. (+) Microsoft์˜ S/W์—์„œ๋Š” GUID๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์Œ... ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด, '์„ธ์ƒ์— ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๋Š” ๊ฐ’'์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด..

Computer/Anything 2024. 1. 31. 16:00
์‹œ๊ฐ„ ๋ณต์žก๋„ ํ‘œ๊ธฐ - ์ ๊ทผ์  ํ‘œ๊ธฐ๋ฒ• (Big-O, Big-Θ, Big-โ„ฆ)

์‹œ๊ฐ„ ๋ณต์žก๋„ ๊ฐœ๋…์„ ์•Œ์•˜์œผ๋‹ˆ.. ์ด์ œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์–ด๋–ป๊ฒŒ ํ‘œ๊ธฐํ•˜๋Š” ์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค !! (์•„์ง๋„ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๋ญ”์ง€ ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด.. ์•„๋ž˜ ํ™•์ธํ•ด๋ณด์„ธ์š” ๐Ÿ˜†) ์‹œ๊ฐ„ ๋ณต์žก๋„ (Time Complexity), ๊ทธ๋ฆฌ๊ณ  ๊ณต๊ฐ„ ๋ณต์žก๋„ (Space Complexity) ๋‹ค์‹œ ๊ธฐ์–ต์„ ๋˜์‚ด๋ ค๋ณด๋ฉด, ์šฐ๋ฆฌ๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ธก์ •ํ•  ๋•Œ ์ตœ์•…์˜ ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•˜๊ณ , ์ˆ˜ํ–‰์‹œ๊ฐ„์„ ์ธก์ •ํ•œ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐ์ดํ„ฐ n๊ฐœ๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ ์ตœ์•…์˜ ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•œ๋‹ค๋ฉด, n๊ฐœ์˜ ์ž…๋ ฅ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์—ฐ์‚ฐ ์ˆ˜ํ–‰ ํšŸ์ˆ˜๋ฅผ n์˜ ๊ด€ํ•œ ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๊ฒ ์ฃ  ?! (๋ฌด์Šจ ๋ง์ธ์ง€ ๋ชจ๋ฅด์‹œ๊ฒ ๋‹ค๊ณ ์š”..? ์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด ์ดํ•ด๊ฐ€์‹ค ๊ฑฐ์—์š”! ) ์ €๋ฒˆ์— ๋ดค๋˜ ์ฝ”๋“œ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค ! ์•„๋ž˜ ํ•จ์ˆ˜๋Š” ๋ฐฐ์—ด์—์„œ ์ œ์ผ ํฐ ์›์†Œ๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. // Swift func..

Computer/Algorithm 2024. 1. 29. 00:38