๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ฏ | ๋ฐฑ์ค€/๐Ÿ˜€ | Bronze

[Kotlin, B1] ๋ฐฑ์ค€ 16433๋ฒˆ ์ฃผ๋””์™€ ๋‹น๊ทผ๋†์žฅ

by immgga 2024. 8. 7.

์ถœ์ฒ˜: unsplash.com

 

์ฃผ๋””์™€ ๋‹น๊ทผ๋†์žฅ(16433๋ฒˆ)

Bronze 1

#๊ตฌํ˜„

https://www.acmicpc.net/problem/16433

 

๋ฌธ์ œ ๋‚ด์šฉ

 

 

๋ฌธ์ œ ์ ‘๊ทผ

์ •์‚ฌ๊ฐํ˜•์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐญ์˜ ๋„“์ด์ธ n๊ณผ ๋‹น๊ทผ์ด ์‹ฌ์–ด์ ธ ์žˆ๋Š” ์œ„์น˜ r, c๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค.

๋‹น๊ทผ์„ ๋ฐญ์— ์‹ฌ์–ด์•ผ ํ•˜๋Š”๋ฐ ์กฐ๊ฑด์ด ์žˆ๋‹ค.

๋‹น๊ทผ์ด ์‹ฌ์–ด์ ธ ์žˆ๋Š” ์œ„์น˜์— ์œ„, ์•„๋ž˜, ์˜ค๋ฅธ์ชฝ, ์™ผ์ชฝ์— ๋‹ค๋ฅธ ๋‹น๊ทผ์ด ์‹ฌ์–ด์ ธ ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค.

์˜ˆ์ œ 1์„ ์˜ˆ๋กœ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹น๊ทผ์ด ์‹ฌ์–ด์ ธ์•ผ ํ•œ๋‹ค.

์‚ฌ์ง„ 1-1

์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๊ธฐ์กด์— ์‹ฌ์–ด์ ธ ์žˆ๋˜ ๋‹น๊ทผ์„ ๊ธฐ์ค€์œผ๋กœ ์ง€๊ทธ์žฌ๊ทธ๋กœ ๋‹น๊ทผ์„ ์‹ฌ์–ด์•ผ ํ•œ๋‹ค.

์ฒซ ๋‹น๊ทผ์˜ ์œ„์น˜์— ๋งž๊ฒŒ ๋‹ค๋ฅธ ๋‹น๊ทผ์˜ ์œ„์น˜๋ฅผ ๊ตฌํ•˜๋ ค๋ฉด ์กฐ๊ฑด์ด ํ•„์š”ํ•˜๋‹ค.

 

<์กฐ๊ฑด 1>

์šฐ์„  r๋ถ€ํ„ฐ ๋ด๋ณด์ž. ์ง€๊ทธ์žฌ๊ทธ๊ฐ€ ๋˜๋ ค๋ฉด, ํ˜„์žฌ ๋‹น๊ทผ์ด ์‹ฌ์–ด์ ธ ์žˆ๋Š” ์œ„์น˜์™€ ์‹ฌ์„ ๋‹น๊ทผ์˜ ๊ฑฐ๋ฆฌ ์ฐจ์ด๊ฐ€ ์ง์ˆ˜๋ฉด ๋˜‘๊ฐ™์€ x์œ„์น˜์— ๋‹น๊ทผ์„ ์‹ฌ์–ด๋„ ๋œ๋‹ค. ์ด๋ฅผ ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ด ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

if(abs(r - i) % 2 == 0)

์ฒซ ๋‹น๊ทผ์˜ ์œ„์น˜์ธ r๋กœ๋ถ€ํ„ฐ ๊ฑฐ๋ฆฌ๊ฐ€ ์ง์ˆ˜๋งŒํผ ๋–จ์–ด์ ธ ์žˆ์œผ๋ฉด ๋™์ผํ•œ c์— ๋‹น๊ทผ์„ ์‹ฌ์–ด์•ผ ํ•œ๋‹ค.

์ฒซ ๋‹น๊ทผ์˜ ์œ„์น˜๊ฐ€ r๋กœ๋ถ€ํ„ฐ ํ™€์ˆ˜๋งŒํผ ๋–จ์–ด์ ธ ์žˆ์œผ๋ฉด ๋™์ผํ•œ c์— ๋‹น๊ทผ์„ ์‹ฌ์„ ์ˆ˜ ์—†๋‹ค.

 

<์กฐ๊ฑด 2>

์ด์ œ c๋ฅผ ์‚ดํŽด๋ณด์ž. ์กฐ๊ฑด 1์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ํ˜„์žฌ ์‹ฌ์–ด์ง„ ๋‹น๊ทผ์˜ r๊ณผ ์‹ฌ์–ด์งˆ ๋‹น๊ทผ์˜ r ๊ฑฐ๋ฆฌ์˜ ์ฐจ์ด๊ฐ€ ์ง์ˆ˜๋ผ๋Š” ๋œป์ด๊ธฐ ๋•Œ๋ฌธ์—

์ฒซ ๋‹น๊ทผ์ด ์‹ฌ์–ด์ง„ c์œ„์น˜์—์„œ ์ง์ˆ˜๊ฑฐ๋ฆฌ๋งŒํผ ๋–จ์–ด์ง„ ์œ„์น˜์— ๋‹น๊ทผ์„ ์‹ฌ์–ด์•ผ ํ•œ๋‹ค.

if(abs(c - j % 2 == 0)

์ด ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด c์™€์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ์ง์ˆ˜์ด๊ณ  r๊ณผ์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ์ง์ˆ˜์ธ ์œ„์น˜์— ๋‹น๊ทผ์„ ๋ชจ๋‘ ์‹ฌ์„  ์ˆ˜ ์žˆ๋‹ค.

 

<์กฐ๊ฑด 3>

์กฐ๊ฑด 1์ด ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

์กฐ๊ฑด 1์ด ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋Š” r๊ณผ ํ˜„์žฌ ์‹ฌ์„ ์œ„์น˜์˜ y๊ฑฐ๋ฆฌ ์ฐจ์ด๊ฐ€ ํ™€์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹น๊ทผ์„ ์‹ฌ์„ ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค.

๊ฐ€๋กœ์˜ ๊ฒฝ์šฐ์—๋„ c์™€ ํ˜„์žฌ ์‹ฌ์„ ์œ„์น˜๊ฐ€ ํ™€์ˆ˜์ธ ์ƒํƒœ์—ฌ์•ผ ๋‹น๊ทผ์„ ์‹ฌ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

if(abs(c - j) % 2 != 0)

์ด ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด์„œ ์กฐ๊ฑด 1์„ ๋ถˆ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋‹น๊ทผ์„ ์‹ฌ์–ด์•ผ ํ•œ๋‹ค.

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ์ฝ”๋“œ

๋”๋ณด๊ธฐ
import java.io.BufferedReader
import java.io.InputStreamReader
import kotlin.math.abs

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    val (n, r, c) = readLine().split(" ").map { it.toInt() }
    val map = Array(n + 1) { Array(n + 1) { "." } }
    val res = StringBuilder()

    map[r][c] = "v"

    for (i in 1 until map.size) {
        for (j in 1 until map[i].size) {
            if (abs(r - i) % 2 == 0) {
                if (abs(c - j) % 2 == 0) map[i][j] = "v"
            } else {
                if (abs(c - j) % 2 != 0) map[i][j] = "v"
            }
        }

        res.append("${map[i].filterIndexed { index, _ -> index != 0 }.joinToString("")}\n")
    }

    println(res)
}

 

๋ฌธ์ œ ํ’€์ด

๋ฐญ์„ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ์„ค์ •ํ•œ๋‹ค size๋Š” n + 1๋กœ ์„ค์ •ํ•œ๋‹ค. ๋ฌธ์ œ์—์„œ ์™ผ์ชฝ ์œ„์˜ ๊ฐ’์„ 1, 1๋กœ ๊ฐ€์ •ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— index๊ฐ€ 0์ธ ๊ฐ’๋“ค์„ ์ด์šฉํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.

์ดˆ๊ธฐ ๋‹น๊ทผ์ด ์‹ฌ์–ด์ง„ ์œ„์น˜๋ฅผ v๋กœ ์„ค์ •ํ•œ๋‹ค.

 

2์ค‘ for๋ฌธ์„ ๋Œ๋ฉด์„œ ์กฐ๊ฑด 1์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

์กฐ๊ฑด 1์„ ๋งŒ์กฑํ•œ๋‹ค๋ฉด ์กฐ๊ฑด 2๋ฅผ ํ™•์ธํ•ด์„œ ์กฐ๊ฑด 2๋„ ๋งŒ์กฑํ•˜๋Š” ์œ„์น˜์— ๋‹น๊ทผ(v)์„ ์‹ฌ์–ด์ฃผ๊ณ ,

์กฐ๊ฑด 1์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์กฐ๊ฑด 3์„ ํ™•์ธํ•ด ์กฐ๊ฑด 3์„ ๋งŒ์กฑํ•˜๋Š” ์œ„์น˜์— ๋‹น๊ทผ(v)์„ ์‹ฌ๋Š”๋‹ค.

 

์กฐ๊ฑด์„ ๋ชจ๋‘ ํ™•์ธํ•ด ๊ฐ ์ค„์— ์ ์ ˆํ•œ ์œ„์น˜์— ๋‹น๊ทผ์„ ๋ชจ๋‘ ์‹ฌ์—ˆ์œผ๋ฉด ๋‹น๊ทผ์„ ์‹ฌ์€ ์ค„์„ ์ถœ๋ ฅํ•œ๋‹ค. 0๋ฒˆ์งธ index๋Š” ์ œ๊ฑฐํ•˜๊ณ  ์ถœ๋ ฅํ•œ๋‹ค.

์ถœ๋ ฅ ํ˜•์‹์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋ง์ž.

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •

์‹ฌ์–ด์ง„ ์œ„์น˜๋ฅผ ์ด์šฉํ•ด ๋‚˜๋จธ์ง€ ๋‹น๊ทผ์ด ์‹ฌ์–ด์งˆ ์œ„์น˜๋ฅผ ๋ชจ๋‘ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹ฌ์–ด์ง„ ์œ„์น˜์™€ ์‹ฌ์„ ์œ„์น˜์˜ ํ™€์ˆ˜ ์ง์ˆ˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ ˆํžˆ ํ™œ์šฉํ•ด ์ง€๊ทธ์žฌ๊ทธ ๋ชจ์–‘์œผ๋กœ ๋‹น๊ทผ์„ ์‹ฌ์–ด์•ผ ํ•œ๋‹ค.

์•„์ด๋””์–ด ์ƒ๊ฐ์€ ์–ด๋ ต์ง„ ์•Š์ง€๋งŒ, ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์กฐ๊ธˆ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค.

728x90