์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ios
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฐฑํธ๋ํน
- ์คํ
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ๋์ ํฉ
- ๋นํธ์ฐ์ฐ์
- SwiftUI
- WebApp
- ๋ถํ ํ์
- dfs
- BFS
- Swift
- ๋ถํ ์ ๋ณต
- ๋ถํ ์ ๋ณต
- WebView
- ์ฝํ
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ์์
- ์ฝ๋ฉํ ์คํธ
- dp
- ๋ธ๋ฃจํธํฌ์ค
- ๋ฐฑ์ค
- Queue
- ๋ฌธ์์ด
- ์ด์งํ์
- Today
- Total
MUKER_DEV with iOS
[swift] ๋ฐฑ์ค - 7562๋ฒ: ๋์ดํธ์ ์ด๋ ๋ณธ๋ฌธ
๋ฌธ์ ๋งํฌ
7562๋ฒ: ๋์ดํธ์ ์ด๋
์ฒด์คํ ์์ ํ ๋์ดํธ๊ฐ ๋์ฌ์ ธ ์๋ค. ๋์ดํธ๊ฐ ํ ๋ฒ์ ์ด๋ํ ์ ์๋ ์นธ์ ์๋ ๊ทธ๋ฆผ์ ๋์์๋ค. ๋์ดํธ๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ์นธ์ด ์ฃผ์ด์ง๋ค. ๋์ดํธ๋ ๋ช ๋ฒ ์์ง์ด๋ฉด ์ด ์นธ์ผ๋ก ์ด๋ํ ์
www.acmicpc.net
๋ฌธ์
์ฒด์คํ ์์ ํ ๋์ดํธ๊ฐ ๋์ฌ์ ธ ์๋ค. ๋์ดํธ๊ฐ ํ ๋ฒ์ ์ด๋ํ ์ ์๋ ์นธ์ ์๋ ๊ทธ๋ฆผ์ ๋์์๋ค. ๋์ดํธ๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ์นธ์ด ์ฃผ์ด์ง๋ค. ๋์ดํธ๋ ๋ช ๋ฒ ์์ง์ด๋ฉด ์ด ์นธ์ผ๋ก ์ด๋ํ ์ ์์๊น?
์ ๋ ฅ
์ ๋ ฅ์ ์ฒซ์งธ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค.
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ์ธ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ฒซ์งธ ์ค์๋ ์ฒด์คํ์ ํ ๋ณ์ ๊ธธ์ด l(4 ≤ l ≤ 300)์ด ์ฃผ์ด์ง๋ค. ์ฒด์คํ์ ํฌ๊ธฐ๋ l × l์ด๋ค. ์ฒด์คํ์ ๊ฐ ์นธ์ ๋ ์์ ์ {0, ..., l-1} × {0, ..., l-1}๋ก ๋ํ๋ผ ์ ์๋ค. ๋์งธ ์ค๊ณผ ์ ์งธ ์ค์๋ ๋์ดํธ๊ฐ ํ์ฌ ์๋ ์นธ, ๋์ดํธ๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ์นธ์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ๋์ดํธ๊ฐ ์ต์ ๋ช ๋ฒ๋ง์ ์ด๋ํ ์ ์๋์ง ์ถ๋ ฅํ๋ค.
์์
์ฑ๊ณต ํ์ด
import Foundation
let dy = [1,2,2,1,-1,-2,-2,-1]
let dx = [-2,-1,1,2,2,1,-1,-2]
for _ in 0..<Int(readLine()!)! {
let length = Int(readLine()!)!
let S = readLine()!.split { $0 == " " }.map { Int($0)! }
let G = readLine()!.split { $0 == " " }.map { Int($0)! }
var queue = [(S,0)]
var visited = Array(repeating: Array(repeating: false, count: length), count: length)
visited[S[0]][S[1]] = true
while !queue.isEmpty {
let current = queue.removeFirst()
if current.0 == G {
print(current.1)
break
}
for i in 0..<dy.count {
let my = current.0[0] + dy[i]
let mx = current.0[1] + dx[i]
guard my >= 0 && my < length && mx >= 0 && mx < length && !visited[my][mx] else { continue }
visited[my][mx] = true
queue.append(([my,mx],current.1+1))
}
}
}
ํ์ด ํค์๋
- ๋์ดํธ๊ฐ ๊ฐ ์ ์๋ 8๊ฐ์ง ๋ฐฉํฅ์ ๊ณ ๋ คํ์ฌ queue์ญํ ์ ํด์ฃผ๋ ๋ฐฐ์ด์ ๋ด์ ๋๋น์ฐ์ ํ์์ผ๋ก ๋ชฉ์ ์ง์ ๋์ฐฉํ๋ ์ต์ count๋ฅผ ๊ตฌํ์ต๋๋ค.
'๐ค ์๊ณ ๋ฆฌ์ฆ > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ๋ฐฑ์ค - 10709๋ฒ: ๊ธฐ์์บ์คํฐ (0) | 2023.07.24 |
---|---|
[swift] ๋ฐฑ์ค - 1758๋ฒ: ์๋ฐ์ ๊ฐํธ (0) | 2023.07.24 |
[swift] ๋ฐฑ์ค - 5800๋ฒ: ์ฑ์ ํต๊ณ (0) | 2023.07.20 |
[swift] ๋ฐฑ์ค - 10448๋ฒ: ์ ๋ ์นด ์ด๋ก (0) | 2023.07.19 |
[swift] ๋ฐฑ์ค - 2669๋ฒ: ์ง์ฌ๊ฐํ ๋ค๊ฐ์ ํฉ์งํฉ์ ๋ฉด์ ๊ตฌํ๊ธฐ (0) | 2023.07.17 |