์ข ์ด์ ๊ฐ์(1780๋ฒ)
Silver 2
#๋ถํ ์ ๋ณต #์ฌ๊ท
https://www.acmicpc.net/problem/1780
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
์ข ์ด๊ฐ -1 ๋๋ 0 ๋๋ 1๋ก ๋ชจ๋ ์ฑ์์ง์ง ์์์ ๋, ์ ํํ 9๋ฑ๋ถ์ ํด ๋ค์ ์ข ์ด๊ฐ -1 ๋๋ 0 ๋๋ 1์ธ์ง ํ์ธํด์
-1, 0, 1๋ก ์ฑ์์ง ์ข ์ด์ ๊ฐ์๋ฅผ ์ธ์ ์ถ๋ ฅํ๋ฉด ๋๋ค.
์์ ์ขํ์ ํ์ธํ size๋ฅผ ์ ํ ๋ค์, ์์ ์ขํ์์ size๋งํผ์ ๋ฒ์๋ฅผ ํ์ธํด ์ซ์์ ๊ฐ์๋ฅผ ์ธ์ฃผ๋ ๋ฐฉ์์ ์ฌ๊ท ํธ์ถ์ ํตํด ํด๊ฒฐํ ์ ์๋ค.
๋ฌธ์ ํด๊ฒฐ ์ฝ๋
import java.io.BufferedReader
import java.io.InputStreamReader
private var paper = arrayOf(arrayOf<Int>())
private var cntMinus1 = 0
private var cnt0 = 0
private var cnt1 = 0
fun main() {
val bf = BufferedReader(InputStreamReader(System.`in`))
val n = bf.readLine().toInt()
paper = Array(n + 1) { Array(n + 1) { 0 } }
for (i in 1 .. n) {
val line = bf.readLine().split(" ").map { it.toInt() }
for (j in 1 .. n) {
paper[i][j] = line[j - 1]
}
}
cutting(1, 1, n)
println("$cntMinus1 $cnt0 $cnt1")
}
private fun cutting(x: Int, y: Int, size: Int) {
val check = paper[y][x]
var cnt = 0
for (i in y until y + size) {
for (j in x until x + size) {
if (paper[i][j] == check) cnt++
}
}
if (cnt == size * size) {
when (check) {
0 -> cnt0++
1 -> cnt1++
-1 -> cntMinus1++
}
} else {
for (cy in y until y + size step size / 3) {
for (cx in x until x + size step size / 3) {
cutting(cx, cy, size / 3)
}
}
}
}
๋ฌธ์ ํ์ด
์ ๋ ฅ๊ฐ์ ์ ์ฅํ paper์ -1, 0, 1 ์ข ์ด์ ๊ฐ์๋ฅผ ์ธ์ค ๋ณ์๋ฅผ ์์ฑํ๋ค.
check๋ก ๊ฐ์๋ฅผ ์ธ์ค ์ซ์๋ฅผ ์ ํ๊ณ
์์ ์ขํ์์ size๋งํผ์ ๋ฒ์๋ฅผ ์ํํ๋ฉด์ check๊ณผ ๋์ผํ ๊ฐ์ ๊ฐ์๋ฅผ ์ธ์ค๋ค.
cnt๊ฐ size * size์ ๊ฐ๋ค๋ฉด ํ์ธํ๋ ๋ฉด์ด ๋ชจ๋ check์ ๋์ผํ๋ค๋ ๋ป์ด ๋๋ค.
์ ๋ ฅ๊ฐ์ด ํญ์ ์ ์ฌ๊ฐํ์ด๊ณ ๊ธธ์ด๋ 3์ ์ ๊ณฑ์๋ง์ผ๋ก๋ง ์ฃผ์ด์ง๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ๋ค.
cnt๊ฐ size * size์ ๋ค๋ฅด๋ฉด ํ์ฌ๋ฒ์์์ 9๋ฑ๋ถ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ step size / 3์ ์ด์ฉํด 9๊ฐ์ ์์ ์ขํ๋ฅผ ๋ชจ๋ ๊ตฌํ ์ ์๋ค.
๊ตฌํ ์์ ์ขํ์ size / 3์ผ๋ก ๋ฒ์๋ฅผ ์ขํ ํจ์๋ฅผ ๋ค์ ํธ์ถํ๋ฉด ๋๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
ํธ๋๋ฐ ํฐ ์ด๋ ค์์ ์์๋ค.
์ฌ๊ท ํธ์ถ์ ์ด๋ป๊ฒ ํ ์ง ์ค๊ณ๋ง ์ํ๋ฉด ๋๋ค.
์ฒด๊ฐ ๋์ด๋ Silver 3 ~ Silver 2
'๐ฏ | ๋ฐฑ์ค > ๐ | Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, S2] ๋ฐฑ์ค 14247๋ฒ ๋๋ฌด ์๋ฅด๊ธฐ (0) | 2025.01.14 |
---|---|
[Kotlin, S1] ๋ฐฑ์ค 2205๋ฒ ์ ์ธ ์ถ ๋ง๋ค๊ธฐ (0) | 2025.01.07 |
[Kotlin, S3] ๋ฐฑ์ค 32186๋ฒ ์ญ์ ๋ด ์ด์ธ๊ณ ์์ด์ ์๋ชป๋๋ค (0) | 2024.12.18 |
[Kotlin, S2] ๋ฐฑ์ค 26007๋ฒ Codepowers (0) | 2024.12.03 |
[Kotlin, S4] ๋ฐฑ์ค 2090๋ฒ ์กฐํํ๊ท (3) | 2024.11.25 |