๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ฏ | ๋ฐฑ์ค€/๐Ÿ™‚ | Silver

[Kotlin, S2] ๋ฐฑ์ค€ 1780๋ฒˆ ์ข…์ด์˜ ๊ฐœ์ˆ˜

by immgga 2024. 12. 18.
๋ฐ˜์‘ํ˜•

์ถœ์ฒ˜: unsplash.com

 

์ข…์ด์˜ ๊ฐœ์ˆ˜(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

728x90
๋ฐ˜์‘ํ˜•