์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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
- ๋ฐฑ์ค
- BFS
- ์คํ
- ๋ถํ ์ ๋ณต
- ์ฝ๋ฉํ ์คํธ
- dfs
- ํ๋ก๊ทธ๋๋จธ์ค
- ios
- ์ด์งํ์
- ๋ถํ ํ์
- WebView
- ๋ถํ ์ ๋ณต
- ๋์ ํฉ
- WebApp
- ์๊ณ ๋ฆฌ์ฆ
- ๋ธ๋ฃจํธํฌ์ค
- Swift
- ๋นํธ์ฐ์ฐ์
- ์ฝํ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ์์
- dp
- ๋ฌธ์์ด
- Queue
- ๋ฐฑํธ๋ํน
- SwiftUI
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
Archives
- Today
- Total
MUKER_DEV with iOS
[swift] ๋ฐฑ์ค - 1780๋ฒ: ์ข ์ด์ ๊ฐ์ ๋ณธ๋ฌธ
์ฑ๊ณต ํ์ด
let N = Int(readLine()!)!
var arr = [[Int]]()
var cnt = [0,0,0]
for _ in 0..<N {
arr.append(readLine()!.split(separator: " ").map { Int($0)! })
}
func solution(paperSize: Int, y: Int, x: Int) {
let point = arr[y][x]
for i in y..<y+paperSize {
for j in x..<x+paperSize {
if arr[i][j] != point {
let newSize = paperSize / 3
for k in 0..<3 {
for l in 0..<3 {
solution(paperSize: newSize, y: y+k*newSize, x: x+l*newSize)
}
}
return
}
}
}
cnt[point+1] += 1
}
solution(paperSize: N, y: 0, x: 0)
cnt.forEach { print($0) }
ํ์ด ํค์๋
๋ถํ ์ ๋ณต
์ ๋ ฅ๊ฐ N์ 9๋ฅผ ๋ฐ๋๋ค๋ฉด
9*9 ํฌ๊ธฐ์ ์ข ์ด(๋ฐฐ์ด)๊ฐ ๋ง๋ค์ด์ง๋๋ค.
9*9 ๋ฐฐ์ด์ด ๋ชจ๋ ๊ฐ์ ์ซ์์ธ์ง ํ์ธํ๊ธฐ ์ํด
์์์
๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋ (y, x) ๊ฐ์ ์ด์ฉํด
์์์ ์ ์ซ์(-1 or 0 or 1)๋ฅผ ๊ธฐ์ตํฉ๋๋ค.
๋ค์ 0.. <9(paperSize)๊น์ง ์ด์ค ๋ฐ๋ณตํ๋ฉฐ
for i in y..<y+paperSize { for j in x..<x+paperSize { if arr[i][j] != point {
arr [i][j]๊ฐ ์์์ ์ ์ซ์์ธ์ง ๋น๊ตํฉ๋๋ค.
๋ง์ฝ ์์์ ๊ณผ ๋ค๋ฅด๋ค๋ฉด
paperSize๋ / 3์ผ๋ก ๋๋ newSize๋ฅผ ์ค๋นํด ์ค๋๋ค.
์ด ๊ณผ์ ์ ์ข ์ด๋ฅผ ๊ฐ์ ํฌ๊ธฐ๋ก 9 ๊ฐ ์๋ฅด๊ณ , ๊ฐ๊ฐ ์๋ฆฐ ์ข ์ด์ ํฌ๊ธฐ๋ฅผ ์ง์ ํด ์ค๋๋ค.
๊ฐ์ ํฌ๊ธฐ์ 9๊ฐ ์ข ์ด๋ฅผ ํ์ํ๊ธฐ ์ํด
y์ถ์ 0..<3, x์ถ์ 0..<3
์ด์ค ๋ฐ๋ณตํฉ๋๋ค.
let newSize = paperSize / 3 for k in 0..<3 { for l in 0..<3 { solution(paperSize: newSize, y: y+k*newSize, x: x+l*newSize) } }
์๋ก์ด solutionํจ์๋ฅผ ์ฌ๊ทํธ์ถํฉ๋๋ค.
ํ์ฌ newSize๋ 3
k์ l์ newSize์ ๊ณฑํด y์ x์ ์์์ ์ ์ด๊ธฐํ์์ผ์ค๋๋ค.
์์์ ์ด ๋ค๋ฅผ ๋๋ ์์ ์ด์ค ๋ฐ๋ณต๋ฌธ์ ๊ผญ return ์์ผ์ค๋๋ค.
๊ฒ์ฌ ๋ฒ์์์ ์์์ ๊ณผ ๋ชจ๋ ๊ฐ์ด ๊ฐ๋ค๋ฉด
cnt ๋ฐฐ์ด์ ์๋ง์ ponit๋ฅผ 1 ๋ ํด์ค๋๋ค.return } } } cnt[point+1] += 1
'๐ค ์๊ณ ๋ฆฌ์ฆ > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ๋ฐฑ์ค - 11724๋ฒ: ์ฐ๊ฒฐ ์์์ ๊ฐ์ (0) | 2023.04.14 |
---|---|
[swift] ๋ฐฑ์ค - 2630๋ฒ: ์์ข ์ด ๋ง๋ค๊ธฐ (0) | 2023.04.14 |
[swift] ๋ฐฑ์ค - 17626๋ฒ: Four Squares (0) | 2023.04.12 |
[swift] ๋ฐฑ์ค - 11727๋ฒ: 2รn ํ์ผ๋ง 2 (0) | 2023.04.12 |
[swift] ๋ฐฑ์ค- 11726๋ฒ: 2รn ํ์ผ๋ง (0) | 2023.04.11 |