์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Swift
- ์์
- Queue
- ๋ธ๋ฃจํธํฌ์ค
- ์ฝ๋ฉํ ์คํธ
- ์ฝํ
- SwiftUI
- ๋์ ํฉ
- ์ด์งํ์
- dp
- ios
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ๋ฐฑํธ๋ํน
- ์๊ณ ๋ฆฌ์ฆ
- ๋ถํ ์ ๋ณต
- ๋ถํ ํ์
- ๋ฌธ์์ด
- ๋นํธ์ฐ์ฐ์
- dfs
- ๋ถํ ์ ๋ณต
- WebApp
- BFS
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก๊ทธ๋๋จธ์ค
- WebView
- ์คํ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค
Archives
- Today
- Total
MUKER_DEV with iOS
[swift] ๋ฐฑ์ค - 1520๋ฒ: ๋ด๋ฆฌ๋ง ๊ธธ ๋ณธ๋ฌธ
1520๋ฒ: ๋ด๋ฆฌ๋ง ๊ธธ
์ฒซ์งธ ์ค์๋ ์ง๋์ ์ธ๋ก์ ํฌ๊ธฐ M๊ณผ ๊ฐ๋ก์ ํฌ๊ธฐ N์ด ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ์ด์ด ๋ค์ M๊ฐ ์ค์ ๊ฑธ์ณ ํ ์ค์ N๊ฐ์ฉ ์์์๋ถํฐ ์ฐจ๋ก๋ก ๊ฐ ์ง์ ์ ๋์ด๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค.
www.acmicpc.net
๋์ ํ์ด
struct Node { // r,c๋ฅผ ๋๊ฒจ์ฃผ๊ธฐ ์ํ node
var r: Int
var c: Int
}
let MN = readLine()!.split(separator: " ").map { Int($0)! }
let M = MN[0] // ์ธ๋ก์ ํฌ๊ธฐ
let N = MN[1] // ๊ฐ๋ก์ ํฌ๊ธฐ
let rx = [0,0,-1,1] // x์ถ ์ด๋
let ry = [1,-1,0,0] // y์ถ ์ด๋
var map = [[Int]]()
var cnt = Array(repeating: Array(repeating: -1, count: N), count: M)
for _ in 0..<M {
map.append(readLine()!.split(separator: " ").map { Int($0)! })
}
cnt[M-1][N-1] = 1 // DP๋ ๋ณดํต ์ต์ด ์ด๋์
๋ผ์ด์ง์ ํด์ค์ผ ํจ
_ = dfs(now: Node(r: 0, c: 0))
print(cnt[0][0])
func dfs(now: Node) -> Int {
guard cnt[now.r][now.c] < 0 else { return cnt[now.r][now.c] } // ๋ฐฉ๋ฌธํ์ธ
cnt[now.r][now.c] = 0 // ๋ฐฉ๋ฌธ์ฒ๋ฆฌ
for i in 0..<4 {
let nr = now.r + ry[i] // ์ด ์ด๋
let nc = now.c + rx[i] // ํ ์ด๋
if nr < 0 || nc < 0 || nr >= M || nc >= N { // ๋งต ๋ฐ์ผ๋ก ๋๊ฐ๋ ๊ฒฝ์ฐ ์์ธ ์ฒ๋ฆฌ
continue
}
if map[now.r][now.c] > map[nr][nc] {
cnt[now.r][now.c] += dfs(now: Node(r: nr, c: nc))
for i in cnt {
print(i)
}
print("")
}
}
return cnt[now.r][now.c]
}
ํ์ด ํค์๋
DP
DFS
cnt ๋ฐฐ์ด์ ํ๋ฆ
[0, -1, -1, -1, -1]
[0, -1, -1, -1, -1]
[0, -1, -1, -1, -1]
[0, 0, 0, 1, 1]
[0, -1, -1, -1, -1]
[0, -1, -1, -1, -1]
[0, -1, -1, -1, -1]
[0, 0, 1, 1, 1]
[0, -1, -1, -1, -1]
[0, -1, -1, -1, -1]
[0, -1, -1, -1, -1]
[0, 1, 1, 1, 1]
[0, -1, -1, -1, -1]
[0, -1, -1, -1, -1]
[0, -1, -1, -1, -1]
[1, 1, 1, 1, 1]
[0, -1, -1, -1, -1]
[0, -1, -1, -1, -1]
[1, -1, -1, -1, -1]
[1, 1, 1, 1, 1]
[0, -1, -1, -1, -1]
[1, -1, -1, -1, -1]
[1, -1, -1, -1, -1]
[1, 1, 1, 1, 1]
[1, -1, -1, -1, -1]
[1, -1, -1, -1, -1]
[1, -1, -1, -1, -1]
[1, 1, 1, 1, 1]
[1, 0, 0, 0, -1]
[1, -1, -1, 0, -1]
[1, -1, -1, 1, -1]
[1, 1, 1, 1, 1]
[1, 0, 0, 0, -1]
[1, -1, -1, 1, -1]
[1, -1, -1, 1, -1]
[1, 1, 1, 1, 1]
[1, 0, 0, 1, -1]
[1, -1, -1, 1, -1]
[1, -1, -1, 1, -1]
[1, 1, 1, 1, 1]
[1, 0, 0, 1, 0]
[1, -1, -1, 1, 1]
[1, -1, -1, 1, -1]
[1, 1, 1, 1, 1]
[1, 0, 0, 1, 1]
[1, -1, -1, 1, 1]
[1, -1, -1, 1, -1]
[1, 1, 1, 1, 1]
[1, 0, 0, 2, 1]
[1, -1, -1, 1, 1]
[1, -1, -1, 1, -1]
[1, 1, 1, 1, 1]
[1, 0, 2, 2, 1]
[1, -1, -1, 1, 1]
[1, -1, -1, 1, -1]
[1, 1, 1, 1, 1]
[1, 2, 2, 2, 1]
[1, -1, -1, 1, 1]
[1, -1, -1, 1, -1]
[1, 1, 1, 1, 1]
[3, 2, 2, 2, 1]
[1, -1, -1, 1, 1]
[1, -1, -1, 1, -1]
[1, 1, 1, 1, 1]
'๐ค ์๊ณ ๋ฆฌ์ฆ > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ๋ฐฑ์ค - 10810๋ฒ: ๊ณต ๋ฃ๊ธฐ (0) | 2023.04.01 |
---|---|
[swift] ๋ฐฑ์ค - 1463๋ฒ: 1๋ก ๋ง๋ค๊ธฐ (0) | 2023.03.31 |
[swift] ๋ฐฑ์ค - 12865๋ฒ: ํ๋ฒํ ๋ฐฐ๋ญ (0) | 2023.03.30 |
[swift] ๋ฐฑ์ค - 25314๋ฒ: ์ฝ๋ฉ์ ์ฒด์ก๊ณผ๋ชฉ ์ ๋๋ค (0) | 2023.03.26 |
[swift] ๋ฐฑ์ค - 15649๋ฒ: N๊ณผ M (1) (0) | 2023.03.25 |