๋ชฉ๋กํ”„๋กœ๊ทธ๋ž˜๋ฐ (135)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[Swift ์ž๋ฃŒ๊ตฌ์กฐ] 5. Queue ํ

Data Structure in Swift (Queue) - Part 5 swift-algorithm-club/Queue at master · kodecocodes/swift-algorithm-club ์ด ๊ธ€์€ ์œ„์˜ ๊ธ€๋“ค์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Queue ํ ํ๋Š” ๋Œ€๊ธฐ์—ด์„ ๋œปํ•œ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ๋ฒ„์Šค๋ฅผ ํƒ€๊ธฐ ์œ„ํ•ด ์ค„์„ ์„  ๊ฒƒ์„ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค - ๋จผ์ € ์ค„์„ ์„  ์‚ฌ๋žŒ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๋ฒ„์Šค์— ํƒ„๋‹ค. ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ : ์„ ์ž…์„ ์ถœ, ์ฆ‰ FIFO(First In, First Out)๋กœ ๋™์ž‘ํ•œ๋‹ค. ์Šคํƒ๊ณผ์˜ ์ฐจ์ด์  : ํ๋Š” ๊ฐ€์žฅ ์˜ˆ์ „์— ๋“ค์–ด์˜จ ๊ฒƒ๋ถ€ํ„ฐ ์‚ญ์ œํ•˜๊ณ , ์Šคํƒ์€ ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋“ค์–ด์˜จ ๊ฒƒ๋ถ€ํ„ฐ ์‚ญ์ œํ•œ๋‹ค. Queue์˜ ์—ฐ์‚ฐ์ž Enqueue : ๋งจ ๋’ค์— ์ƒˆ ์š”์†Œ ์‚ฝ์ž… Dequeue : ๋งจ ์•ž์˜ ์š”์†Œ ์‚ญ์ œ Front..

[Swift ์ž๋ฃŒ๊ตฌ์กฐ] 4. Stack ์Šคํƒ (๋ฐฐ์—ด/์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ)

Data Structure in Swift (Stack) - Part 3 Swift Algorithm Club: Swift Stack Data Structure ์ด ๊ธ€์€ ์œ„์˜ ๋‘ ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด์„ ๋ฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์Šคํƒ Stack ์Šคํƒ์€ ์š”์†Œ๋ฅผ ์„ ํ˜•(linear)์œผ๋กœ ์ •๋ฆฌํ•˜๊ฒŒ ํ•ด ์ฃผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์Šคํƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ LIFO(Last In First Out) ๋งค์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋”ํ•ด์ง„ ์š”์†Œ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œ๋จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ์˜ ์—ฐ์‚ฐ ์Šคํƒ์€ ๊ต‰์žฅํžˆ ํ•œ์ •๋œ ๋ฒ”์œ„์˜ ์—ฐ์‚ฐ์„ ์ œ๊ณตํ•œ๋‹ค. push() : O(1). ์Šคํƒ์— ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ์—ฐ์‚ฐ pop() : O(1). ์Šคํƒ์˜ ๋งจ ์œ„์˜ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ์—ฐ์‚ฐ peek() : ์Šคํƒ์˜ ๋งจ ์œ„์˜ ์š”์†Œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ..

[Swift ์ž๋ฃŒ๊ตฌ์กฐ] 3. Linked List ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ (Singly Linked List)

Data Structure in Swift (Linked List) - Part 2 ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„ ๋ฌธ์„œ๋ฅผ ๋ฒˆ์—ญํ•ด ์ •๋ฆฌํ•œ ๋ฌธ์„œ์ด๋ฉฐ, Data Structures & Algorithms in Swift, Chapter 6: Linked List ์ด ๋ฌธ์„œ๋ฅผ ํ•จ๊ป˜ ์ฐธ์กฐํ–ˆ์Šต๋‹ˆ๋‹ค. Linked List ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋…ธ๋“œ๋ฅผ ๊ธฐ๋ณธ ๋‹จ์œ„๋กœ ํ•˜๋Š” ์„ ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ. ๋…ธ๋“œ : ๋ฐ์ดํ„ฐ + ํฌ์ธํ„ฐ ๋ฐ์ดํ„ฐ : ํ•ด๋‹น ๋…ธ๋“œ์— ์ €์žฅ๋œ ๊ฐ’ ํฌ์ธํ„ฐ : ๋‹ค์Œ ๋…ธ๋“œ์˜ ์œ„์น˜์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ’ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋ฐฐ์—ด์ฒ˜๋Ÿผ, ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ๋กœ ์š”์†Œ์— ์ž„์˜์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. (list[0] - ๋ถˆ๊ฐ€๋Šฅ) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค Singly Linked List ๋‹จ๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ (๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ) ๊ฐ ํ•ญ๋ชฉ์ด ๋‹ค์Œ ๋…ธ๋“œ์— ๋Œ€ํ•œ ..

[Swift ์ž๋ฃŒ๊ตฌ์กฐ] 2. Dictionary ๋”•์…”๋„ˆ๋ฆฌ (์ƒ์„ฑ, CRUD)

Apple Developer Documentation Data Structure in Swift (iOS) - Part 1 ์œ„ ๋‘ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. Dictionary ๋”•์…”๋„ˆ๋ฆฌ : ํ‚ค-๊ฐ’ ์Œ์„ ์š”์†Œ๋กœ ๊ฐ–๋Š” ์ปฌ๋ ‰์…˜. @frozen struct Dictionary where Key : Hashable ์†Œ๊ฐœ ๋”•์…”๋„ˆ๋ฆฌ๋Š” ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ์ผ์ข…์ด๋‹ค. (๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” hashes ๋‚˜ associated arrays๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค) ํ•ญ๋ชฉ๋“ค์— ๋Œ€ํ•œ ๋น ๋ฅธ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค ๋”•์…”๋„ˆ๋ฆฌ์˜ ๊ฐ ํ•ญ๋ชฉ์€ ํ‚คkey๋ฅผ ํ†ตํ•ด ๊ตฌ๋ณ„๋˜๋ฉฐ, ํ‚ค์— ์ƒ์‘ํ•˜๋Š” ๊ฐ’value์„ ๊ฐ€์ง„๋‹ค. ํ‚ค๋Š” hashableํ•œ ํƒ€์ž…์ด์–ด์•ผ ํ•œ๋‹ค. Hashable ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•˜๋Š” ๋ชจ๋“  ํƒ€์ž…์€ ํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. ํ‚ค๋Š” ์ƒ์‘ํ•˜๋Š” ๊ฐ’์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ๊ฐ’์€ ์–ด๋–ค..

[์ด์ฝ”ํ…Œ] 4.๊ตฌํ˜„ - 2. ์™•์‹ค์˜ ๋‚˜์ดํŠธ (Swift)

‘์ด๊ฒƒ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค’ ๊ตฌํ˜„ - 4-2. ์™•์‹ค์˜ ๋‚˜์ดํŠธ ๋ฌธ์ œ (115ํŽ˜์ด์ง€) ๋‚˜์ดํŠธ์˜ ํ˜„์žฌ ์œ„์น˜๊ฐ€ “a1”๊ณผ ๊ฐ™์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ. ๋‚˜์ดํŠธ๊ฐ€ ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 8๊ฐ€์ง€์ด๋‹ค. ํ•˜์ง€๋งŒ ์›€์ง์ด๋‹ค๊ฐ€ ์ฒด์ŠคํŒ(8*8) ๋ฐ–์œผ๋กœ ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ๋Š” ์›€์ง์ผ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋กœ ํ•˜์—ฌ ์ œ์™ธํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. ๋‚˜๋Š” ๊ทœ์น™๋Œ€๋กœ ์›€์ง์ธ ๋‚˜์ดํŠธ์˜ ์œ„์น˜๊ฐ€ 1~8 ๋ฒ”์œ„ ๋‚ด์— ์žˆ์„ ๋•Œ๋งŒ ์นด์šดํŠธํ•˜๊ณ , ๊ทธ ์ดํ•ฉ์„ ์ถœ๋ ฅํ–ˆ๋‹ค. a=1, b=2, … ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„์Šคํ‚ค์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. (์ฐธ๊ณ  - ๋งํฌ) ํ’€์ด func implementation2(position: String) -> Int { let positionX = Int(position.first!.asciiVa..