์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ์ด์งํ์
- ๋ฐฑํธ๋ํน
- dfs
- ์คํ
- ๋์ ํฉ
- ๋ฐฑ์ค
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ฝํ
- WebApp
- ๋นํธ์ฐ์ฐ์
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ์๊ณ ๋ฆฌ์ฆ
- ์์
- WebView
- SwiftUI
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ๋ถํ ํ์
- Swift
- ์ฝ๋ฉํ ์คํธ
- ๋ถํ ์ ๋ณต
- ๋ธ๋ฃจํธํฌ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- Queue
- ๋ถํ ์ ๋ณต
- ios
- ๋ฌธ์์ด
- BFS
- dp
Archives
- Today
- Total
MUKER_DEV with iOS
[swift] ๋ฐฑ์ค - 2178๋ฒ: ๋ฏธ๋ก ํ์ ๋ณธ๋ฌธ
2178๋ฒ: ๋ฏธ๋ก ํ์
์ฒซ์งธ ์ค์ ๋ ์ ์ N, M(2 ≤ N, M ≤ 100)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์๋ M๊ฐ์ ์ ์๋ก ๋ฏธ๋ก๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ ์๋ค์ ๋ถ์ด์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค.
www.acmicpc.net
๋์ ํ์ด
let NM = readLine()!.split(separator: " ").map { Int($0)! }
let (N,M) = (NM[0],NM[1])
var maze = [[Int]]()
let moveX = [0,0,1,-1]
let moveY = [1,-1,0,0]
var queue = [(0,0)]
var result = 1
for _ in 0..<N {
maze.append(readLine()!.map { Int(String($0))! })
}
while !queue.isEmpty {
let pop = queue.removeFirst()
for i in 0..<4 {
let nowY = pop.0+moveY[i]
let nowX = pop.1+moveX[i]
guard nowY >= 0 && nowY < N && nowX >= 0 && nowX < M else { continue }
if maze[nowY][nowX] == 1 {
maze[nowY][nowX] = maze[pop.0][pop.1] + 1
queue.append((nowY,nowX))
}
}
}
print(maze[N-1][M-1])
ํ์ด ํค์๋
BFS
๋์ด ์ฐ์ ํ์์ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ํ์ํ๋๋ฐ ์ ์ฉํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
ํด๋น ๋ฌธ์ ๋ ๋ฏธ๋ก์ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ก
๊ธฐ๋ณธ์ ์ธ BFS๊ตฌํ์ ์๋ฉด ํ ์ ์๋ค.
๋ณ์ maze ๋ฐฐ์ด์ ์ด๊ธฐ์ 1,0์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฏธ๋ก๋ฅผ ๋ด๊ณ ์์ง๋ง
ํ์์ ํตํด ๋์๊ฐ ๊ฑฐ๋ฆฌ๋งํผ maze๋ฐฐ์ด์ ์ ์ฅ์์ผ์คฌ๋ค.
์์ )
์ ๋ ฅ ๊ฐ :
4 6
110110
110110
111111
111101
ํ์์ด ๋๋ maze๋ฐฐ์ด :
[3, 2, 0, 8, 9, 0]
[2, 3, 0, 7, 8, 0]
[3, 4, 5, 6, 7, 8]
[4, 5, 6, 7, 0, 9]
'๐ค ์๊ณ ๋ฆฌ์ฆ > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ๋ฐฑ์ค - 9461๋ฒ: ํ๋๋ฐ ์์ด (0) | 2023.04.11 |
---|---|
[swift] ๋ฐฑ์ค - 9095๋ฒ: 1,2,3 ๋ํ๊ธฐ (0) | 2023.04.11 |
[swift] ๋ฐฑ์ค - 1260๋ฒ: DFS์ BFS (1) | 2023.04.08 |
[swift] ๋ฐฑ์ค - 1074๋ฒ: Z (0) | 2023.04.06 |
[swift] ๋ฐฑ์ค - 10813๋ฒ: ๊ณต ๋ฐ๊พธ๊ธฐ (0) | 2023.04.02 |