๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (454)

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

[Swift] ๊ทธ๋ž˜ํ”„์™€ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ DFS/BFS (์„ค๋ช… ๋ฐ ๊ตฌํ˜„ ์˜ˆ์ œ)

[Swift] ๊ทธ๋ž˜ํ”„์™€ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ DFS/BFS ๊ฐ€์žฅ ๋„์›€์ด ๋œ ๊ธ€.. https://nareunhagae.tistory.com/56 ๐Ÿ™ '์ด๊ฒƒ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค' ์ฑ…๋„ ํ•จ๊ป˜ ์ฐธ๊ณ ํ•ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ Graph ๊ทธ๋ž˜ํ”„์—์„œ๋Š” ๋ชจ๋“  ๊ฐ์ฒด๋Š” ์ •์ (๋…ธ๋“œ)๋กœ ๋‚˜ํƒ€๋‚ด๊ณ , ๋ชจ๋“  ๊ด€๊ณ„๋Š” ๊ฐ„์„ ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋…ธ๋“œ Node / ์ •์  Vertex ๊ทธ๋ž˜ํ”„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๋‹จ์œ„. (๊ทธ๋ฆผ์—์„œ์˜ ๋™๊ทธ๋ผ๋ฏธ = ๋…ธ๋“œ) ๋‘ ๋…ธ๋“œ๊ฐ€ ์ธ์ ‘ํ•˜๋‹คadjacent : ๋‘ ๋…ธ๋“œ๊ฐ€ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Œ์„ ์˜๋ฏธ ๊ฐ„์„  Edge ๋…ธ๋“œ ์‚ฌ์ด๋ฅผ ์ž‡๋Š” ์„ . ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ : ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋ฅผ ์‹œ์ž‘์œผ๋กœ ๋‹ค์ˆ˜์˜ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ์ค‘ 1์ฐจ์› ๋ฐฐ์—ด, 2์ฐจ์›” ๋ฐฐ์—ด ํƒ์ƒ‰ ๋ฌธ์ œ๋ฅผ ๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ํ‘œ..

[๋ฐฑ์ค€ 10539] ์ˆ˜๋นˆ์ด์™€ ์ˆ˜์—ด (Swift)

[๋ฐฑ์ค€ 10539] ์ˆ˜๋นˆ์ด์™€ ์ˆ˜์—ด 10539๋ฒˆ: ์ˆ˜๋นˆ์ด์™€ ์ˆ˜์—ด ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์ˆ˜์—ด์ด ์ˆ˜์—ด A๊ฐ€ ์•„๋‹Œ, ์ˆ˜์—ด B๋ผ๋Š” ๊ฒƒ ์ด ํฌ์ธํŠธ์ด๋‹ค. ํ‰๊ท  ์‹์„ ๊ทธ๋Œ€๋กœ ์“ฐ๋ฉด ์•ˆ๋˜๊ณ , ํ‰๊ท  ์‹์„ ๋ณ€ํ˜•ํ•ด์•ผ ํ•œ๋‹ค. ์ˆ˜์—ด B์˜ ๊ธธ์ด๊ฐ€ 4์ด๊ณ  ์ฒซ ์š”์†Œ๊ฐ€ 3์ด๋ผ๋ฉด, ์ˆ˜์—ด A์˜ ์ฒซ ์š”์†Œ๋„ 3์ด๋‹ค. (์ฒซ ์š”์†Œ๋Š” 1๋กœ ๋‚˜๋ˆ„๋ฏ€๋กœ ๊ฐ’์ด ๊ฐ™์Œ) ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆ˜์—ด B์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ 2๋ผ๋ฉด, ์ด ๊ฐ’์€ (์ˆ˜์—ด A์˜ ์ฒซ ์š”์†Œ + ์ˆ˜์—ด A์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ) / 2 ์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. ์ด๋•Œ ์ˆ˜์—ด A์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ 3์ด๋ฏ€๋กœ, ์ˆ˜์—ด A์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋Š” 2 * 2 - 3 = 1์ด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆ˜์—ด A์˜ n๋ฒˆ์งธ ์š”์†Œ = (์ˆ˜์—ด B์˜ n๋ฒˆ์งธ ์š”์†Œ * n) - ์ˆ˜์—ด A์˜ n-1 ๋ฒˆ์งธ ์š”์†Œ๊นŒ์ง€์˜ ์ดํ•ฉ ์ด ๋œ๋‹ค. ํ’€์ด let count = Int(read..

[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 ๋‹จ๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ (๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ) ๊ฐ ํ•ญ๋ชฉ์ด ๋‹ค์Œ ๋…ธ๋“œ์— ๋Œ€ํ•œ ..