์ „์ฒด ๊ธ€ 159

ํŠธ๋ฆฌ์˜ ๋†’์ด

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ํŠธ๋ฆฌ๋„ ์‚ฌ์ดํด์ด ์—†๋Š” ๊ทธ๋ž˜ํ”„ ์ด๋ฏ€๋กœ, ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์„ ํ•  ์ˆ˜ ์žˆ์Œ ์ด ๋ฌธ์ œ์—์„œ๋Š” 0๋ฒˆ ๋…ธ๋“œ๊ฐ€ ๋ฌด์กฐ๊ฑด ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ„์„  ์ •๋ณด๋ฅผ ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ ์„œ๋กœ ์ด์–ด ์ฃผ์–ด์•ผ ํ•จ ๊ทธ๋ ‡๊ฒŒ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , ์ž…๋ ฅ ๋ฐ›์€ r ๋…ธ๋“œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฐ ๋…ธ๋“œ์— ํ•ด๋‹นํ•˜๋Š” ๋†’์ด๋ฅผ ๋ณ„๋„์˜ ๋ฐฐ์—ด์— ์ €์žฅํ•จ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์„ ๋งˆ์น˜๊ณ , ๋†’์ด ๋ฐฐ์—ด์˜ ์ตœ๋Œ€๊ฐ’์ด ํ•ด๋‹น ํŠธ๋ฆฌ์˜ ๋†’์ด์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Œ 5. ์ „์ฒด ์ฝ”๋“œ //MARK: - ํŠธ๋ฆฌ์˜ ๋†’์ด //MARK: - Framework import Foundation //MARK: - Type struct Node { //MARK: - Property private var edges: [Int] //MARK:..

๊ณตํ†ต ์กฐ์ƒ ์ฐพ๊ธฐ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ํŠธ๋ฆฌ๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ธฐ ๋ณด๋‹ค๋Š”, ํ˜„์žฌ ๋…ธ๋“œ์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ์ €์žฅํ•œ ํ›„ X์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ํ•˜๋‚˜ ์”ฉ Bool ๋ฐฐ์—ด์„ ํ†ตํ•ด ์ฒดํฌํ•ด ๋‚˜๊ฐ€๊ณ , Y์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ํ•˜๋‚˜ ์”ฉ Bool ๋ฐฐ์—ด์„ ํ†ตํ•ด ์ฒดํฌํ•ด ๋‚˜๊ฐ€๋ฉด์„œ ์ตœ์ดˆ๋กœ true์ธ ๋…ธ๋“œ๊ฐ€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต ์กฐ์ƒ์ด ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Œ 5. ์ „์ฒด ์ฝ”๋“œ //MARK: - ๊ณตํ†ต ์กฐ์ƒ ์ฐพ๊ธฐ //MARK: - Framework import Foundation //MARK: - Function func solution() -> Void { //MARK: - Input guard let input: [String] = readLine()?.components(separatedBy: " ") ..

ํž™์„ ์ด์šฉํ•œ ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue By Heap)

1. ๋ฌธ์ œ ํž™์„ ์ด์šฉํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ๊ตฌํ˜„ 2. ์ž…์ถœ๋ ฅ ํž™์„ ๊ตฌํ˜„ํ•  ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ž…๋ ฅ ๋ฐ›์Œ(์™„์ „์ด์ง„ํŠธ๋ฆฌ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ) 3. ๋ฌธ์ œ ์„ค๊ณ„ ํž™์˜ ๊ฒฝ์šฐ ์™„์ „์ด์ง„ํŠธ๋ฆฌ ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ ์™„์ „์ด์ง„ํŠธ๋ฆฌ๋Š” ์ž์‹ ๋…ธ๋“œ๊ฐ€ 2๊ฐœ ์ดํ•˜, ์™ผ์ชฝ๋ถ€ํ„ฐ ๊ฐ’์ด ์ฐจ๋ก€๋Œ€๋กœ ์ฑ„์›Œ๋‚˜๊ฐ€๋Š” ํŠธ๋ฆฌ๋ฅผ ๋งํ•จ ์‚ฝ์ž… ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ ๋ฐฐ์—ด์˜ ๊ฐ€์žฅ ๋์— ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋น„๊ตํ•˜์—ฌ ํŠธ๋ฆฌ๋ฅผ ์žฌ๊ตฌ์„ฑํ•จ(๋ฌธ์ œ์—์„œ๋Š” ์ตœ์†Ÿ๊ฐ’์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Œ) ํŠธ๋ฆฌ์˜ ๋†’์ด๋Š” ๋…ธ๋“œ๊ฐ€ N๊ฐœ์ผ ๋•Œ, ๋Œ€๋žต log N ์ด๋ฏ€๋กœ, ์ตœ์•…์˜ ๊ฒฝ์šฐ(๊ฐ€์žฅ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๊ฐ’์ด ์‚ฝ์ž… ๋์„ ๊ฒฝ์šฐ, ๋ฌธ์ œ์—์„œ๋Š” ์ตœ์†Ÿ๊ฐ’) ๋ฃจํŠธ๋…ธ๋“œ ๊นŒ์ง€ ๋น„๊ตํ•ด์•ผ ํ•˜๋ฏ€๋กœ O(log N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง ์‚ญ์ œ ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ฐ€์žฅ ๋ ๋‹จ๋ง ..

๋ฐฐ์—ด์„ ์ด์šฉํ•œ ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue By Array)

1. ๋ฌธ์ œ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ๊ตฌํ˜„ 2. ์ž…์ถœ๋ ฅ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ž…๋ ฅ ๋ฐ›์Œ 3. ๋ฌธ์ œ ์„ค๊ณ„ ์‚ฝ์ž… ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ ๋ฐฐ์—ด์˜ ๊ฐ€์žฅ ๋์— ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋˜๋ฏ€๋กœ O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง ์‚ญ์ œ ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ํฐ ๊ฐ’(๋ฌธ์ œ์—์„œ๋Š” ์ตœ์†Ÿ๊ฐ’)๊ณผ ๊ทธ index๋ฅผ ์ฐพ๊ณ , ๊ทธ ๋’ค์— ์ธ๋ฑ์Šค๋ฅผ ์ „๋ถ€ ์•ž์œผ๋กœ ์˜ฎ๊ธฐ๊ณ  ๊ธธ์ด๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ์ค„์—ฌ์คŒ์œผ๋กœ์จ ์‚ญ์ œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰, O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง ํƒ์ƒ‰ ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ํฐ ๊ฐ’(๋ฌธ์ œ์—์„œ๋Š” ์ตœ์†Ÿ๊ฐ’)์„ ์ฐพ์•„ return, O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง 4. ์ „์ฒด ์ฝ”๋“œ //MARK: - ์šฐ์„ ์ˆœ์œ„ ํ(๋ฐฐ์—ด) //MARK: - Framework import Foundation //MARK: - Type struct PriorityQueue { //MARK..

ํŠธ๋ฆฌ ์ˆœํšŒ ๊ฒฐ๊ณผ ์ถœ๋ ฅํ•˜๊ธฐ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ, ์žฌ๊ท€์ ์ธ ์„ฑ์งˆ์„ ์ด์šฉํ•ด ์ˆœํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ž„ ๊ทธ ์ค‘, ์ „์œ„ ์ˆœํšŒ, ์ค‘์œ„ ์ˆœํšŒ, ํ›„์œ„ ์ˆœํšŒ๊ฐ€ ๋Œ€ํ‘œ์ ์ด๋ฉฐ, ๊ฐ๊ฐ์˜ ๊ธฐ์ €์กฐ๊ฑด์€ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†์„ ๋•Œ(๋‹จ๋ง ๋…ธ๋“œ์ผ ๋•Œ)์ด๋ฉฐ, ์ด ๋ฌธ์ œ์—์„œ๋Š” ์ž์‹ ๋…ธ๋“œ๊ฐ€ -1์ธ ๊ฒฝ์šฐ๊ฐ€ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•˜๋ฉฐ, ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด root์˜ ์›€์ง์ž„์— ๋”ฐ๋ผ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์ง ์ „์œ„ ์ˆœํšŒ์˜ ๊ฒฝ์šฐ Root-L-R, ์ค‘์œ„ ์ˆœํšŒ์˜ ๊ฒฝ์šฐ L-Root-R, ํ›„์œ„ ์ˆœํšŒ์˜ ๊ฒฝ์šฐ L-R-Root(๊ฐ๊ฐ์˜ L, R์€ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ, ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ ๋œปํ•จ)์˜ ๊ณผ์ •์œผ๋กœ ํŠธ๋ฆฌ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ Root์˜ ์œ„์น˜์— ๋”ฐ๋ผ ์ „์œ„, ์ค‘์œ„, ํ›„์œ„๋กœ ๊ตฌ๋ณ„๋จ์„ ์•Œ ์ˆ˜ ์žˆ์Œ 5. ์ „์ฒด ์ฝ”๋“œ //MARK:..