์ฃผ๋์ ๋น๊ทผ๋์ฅ(16433๋ฒ)
Bronze 1
#๊ตฌํ
https://www.acmicpc.net/problem/16433
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
์ ์ฌ๊ฐํ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐญ์ ๋์ด์ธ n๊ณผ ๋น๊ทผ์ด ์ฌ์ด์ ธ ์๋ ์์น r, c๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค.
๋น๊ทผ์ ๋ฐญ์ ์ฌ์ด์ผ ํ๋๋ฐ ์กฐ๊ฑด์ด ์๋ค.
๋น๊ทผ์ด ์ฌ์ด์ ธ ์๋ ์์น์ ์, ์๋, ์ค๋ฅธ์ชฝ, ์ผ์ชฝ์ ๋ค๋ฅธ ๋น๊ทผ์ด ์ฌ์ด์ ธ ์์ผ๋ฉด ์ ๋๋ค.
์์ 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๋ ์ ๊ฑฐํ๊ณ ์ถ๋ ฅํ๋ค.
์ถ๋ ฅ ํ์์ ๋ฐ๋ฅด๋ ๊ฒ์ ์์ง ๋ง์.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
์ฌ์ด์ง ์์น๋ฅผ ์ด์ฉํด ๋๋จธ์ง ๋น๊ทผ์ด ์ฌ์ด์ง ์์น๋ฅผ ๋ชจ๋ ํ์ธํ ์ ์๋ค.
์ฌ์ด์ง ์์น์ ์ฌ์ ์์น์ ํ์ ์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ ํ ํ์ฉํด ์ง๊ทธ์ฌ๊ทธ ๋ชจ์์ผ๋ก ๋น๊ทผ์ ์ฌ์ด์ผ ํ๋ค.
์์ด๋์ด ์๊ฐ์ ์ด๋ ต์ง ์์ง๋ง, ๊ตฌํํ๋ ๋ฐ ์กฐ๊ธ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค.
'๐ฏ | ๋ฐฑ์ค > ๐ | Bronze' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, B1] ๋ฐฑ์ค 20632๋ฒ ์ ๋๋์ ํด์ฆ์ผ (0) | 2024.08.28 |
---|---|
[Kotlin, B1] ๋ฐฑ์ค 15629๋ฒ Africa (0) | 2024.08.22 |
[Kotlin, B1] ๋ฐฑ์ค 1952๋ฒ ๋ฌํฝ์ด2 (0) | 2024.08.14 |
[Kotlin, B2] ๋ฐฑ์ค 31215๋ฒ ์ด์ํ ์๊ธฐ ์ฐ์ฐ (0) | 2024.08.07 |
[Kotlin, B1] ๋ฐฑ์ค 25593๋ฒ ๊ทผ๋ฌด ์ง์ฅ์ ๋น ์ง ํธ์์ด (Small) (0) | 2024.07.31 |