-
[Swift] ๋ฐฑ์ค 2178 ๋ฏธ๋ก ํ์ (Graph Traversal)๐ป Algorithm/Swift 2023. 1. 31. 22:48
๐ ํ์ด
๐ฌ Code
import Foundation let input = readLine()!.split(separator: " ").map{ Int(String($0))! } let n = input[0] let m = input[1] var graph = [[Int]]() var visited = [[Bool]]() for _ in 0..<n { graph.append(readLine()!.map{ Int(String($0))! }) visited.append(Array<Bool>(repeating: false, count: m)) } print(bfs(0, 0)) func bfs(_ x: Int, _ y: Int) -> Int { var queue = [[Int]]() var minLen = 10000 let dx = [-1, 1, 0, 0] let dy = [0, 0, -1, 1] queue.append([x, y, 1]) visited[x][y] = true while !queue.isEmpty { let now = queue.removeFirst() let len = now[2] if now[0] == n - 1 && now[1] == m - 1 { // ๋์ฐฉ minLen = min(minLen, len) } for i in 0..<4 { let nx = now[0] + dx[i] let ny = now[1] + dy[i] if 0..<n ~= nx && 0..<m ~= ny && graph[nx][ny] == 1 && !visited[nx][ny] { queue.append([nx, ny, len + 1]) visited[nx][ny] = true } } } return minLen }
2178๋ฒ: ๋ฏธ๋ก ํ์
์ฒซ์งธ ์ค์ ๋ ์ ์ N, M(2 ≤ N, M ≤ 100)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์๋ M๊ฐ์ ์ ์๋ก ๋ฏธ๋ก๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ ์๋ค์ ๋ถ์ด์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค.
www.acmicpc.net
'๐ป Algorithm > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ๋ฐฑ์ค 15649 N๊ณผ M (1) (Back Tracking) (0) 2023.01.31 [Swift] ๋ฐฑ์ค 10026 ์ ๋ก์์ฝ (Graph Traversal) (0) 2023.01.31 [Swift] ๋ฐฑ์ค 2667 ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (Graph Traversal) (0) 2023.01.31 [Swift] ๋ฐฑ์ค 9012 ๊ดํธ (Data Structure) (0) 2023.01.31 [Swift] ๋ฐฑ์ค 2606 ๋ฐ์ด๋ฌ์ค (Graph Traversal) (0) 2023.01.31