Swift Data Structure And Algorithm/Graph Algorithm 22

๊ทธ๋ž˜ํ”„ ๊ตฌํ˜„ : ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ

1. ๋ฌธ์ œ ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ 2. ๋ฌธ์ œ ์„ค๊ณ„ ๊ทธ๋ž˜ํ”„๋ฅผ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜๋ฉด, ๋‘ ์ •์ ์ด ์—ฐ๊ฒฐ๋ผ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ O(1)๋งŒ์— ์•Œ ์ˆ˜ ์žˆ๋Š” ์ธ์ ‘ ํ–‰๋ ฌ์— ๋น„ํ•ด O(์ฐจ์ˆ˜) ๋งŒํผ ๊ฑธ๋ฆฌ๊ฒŒ ๋˜๋ฏ€๋กœ, ์ด ๋ถ€๋ถ„์ด ๋‹จ์ ์ด ๋  ์ˆ˜ ์žˆ์Œ ํ•˜์ง€๋งŒ, ์ธ์ ‘ ํ–‰๋ ฌ์— ๋น„ํ•ด ๊ณต๊ฐ„ ํ™œ์šฉ๋„๊ฐ€ ๋†’์œผ๋ฉฐ, ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ์ •์ ์˜ ๊ฐœ์ˆ˜๋ฅผ ํŒŒ์•…ํ•˜๋Š”๋ฐ ์ธ์ ‘ ํ–‰๋ ฌ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Œ 3. ์ „์ฒด ์ฝ”๋“œ //MARK: - ๊ทธ๋ž˜ํ”„ ๊ตฌํ˜„ : ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ //MARK: - Framework import Foundation //MARK: - Type struct Graph { //MARK: - Property var edges: [Int] //MARK: - Initializer init() { self.edges = [] }..

๊ทธ๋ž˜ํ”„ ๊ตฌํ˜„ : ์ธ์ ‘ ํ–‰๋ ฌ

1. ๋ฌธ์ œ ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ธ์ ‘ ํ–‰๋ ฌ๋กœ ๊ตฌํ˜„ 2. ๋ฌธ์ œ ์„ค๊ณ„ ๊ทธ๋ž˜ํ”„๋ฅผ ์ธ์ ‘ ํ–‰๋ ฌ๋กœ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜๋ฉด, ๋‘ ์ •์ ์ด ์—ฐ๊ฒฐ๋ผ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ O(1)๋งŒ์— ์•Œ ์ˆ˜ ์žˆ์Œ ํ•˜์ง€๋งŒ, ๋ฌด์กฐ๊ฑด ์ •์ ์˜ ๊ฐœ์ˆ˜์˜ ์ œ๊ณฑ๊ฐœ ๋งŒํผ์˜ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๋ถˆํ•„์š”ํ•œ ๊ณต๊ฐ„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŠน์ • ์ •์ ๊ณผ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ์ •์ ์„ ๊ตฌํ•˜๋Š”๋ฐ O(์ •์ ์˜ ๊ฐœ์ˆ˜)๋งŒํผ ๊ฑธ๋ฆฌ๊ฒŒ ๋จ 3. ์ „์ฒด ์ฝ”๋“œ //MARK: - ๊ทธ๋ž˜ํ”„ ๊ตฌํ˜„ : ์ธ์ ‘ ํ–‰๋ ฌ //MARK: - Framework import Foundation //MARK: - Function func isConnected(_ myGraph: [[Int]], _ x: Int, _ y: Int) -> Bool { //Time Complexity : O(1) return myGraph[x][y] == 1 ? true :..