์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- ๋นํธ์ฐ์ฐ์
- ๋ถํ ์ ๋ณต
- dfs
- ๋ถํ ํ์
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ๋์ ํฉ
- Swift
- ๋ฐฑํธ๋ํน
- ๋ธ๋ฃจํธํฌ์ค
- ์ด์งํ์
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก๊ทธ๋๋จธ์ค
- WebView
- ios
- ์ฝ๋ฉํ ์คํธ
- ์ฝํ
- Queue
- dp
- SwiftUI
- ๋ถํ ์ ๋ณต
- ์์
- ์คํ
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ๋ฌธ์์ด
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค
- BFS
- WebApp
- 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 |