๋๋ ๋ ๋นํธ(32343๋ฒ)
Bronze 1
#๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ #๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ #๋นํธ๋ง์คํน
2024 HICON ํ์ต๋ํ๊ต ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์ง๋ํ B๋ฒ
https://www.acmicpc.net/problem/32343
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
n์๋ฆฌ์ 2์ง์์์ ๊ฐ๊ฐ 1์ ๊ฐ์๊ฐ a, b๊ฐ์ธ 2์ง์ 2๊ฐ๊ฐ ์ฃผ์ด์ง ๋, ๋ 2์ง์์ xor ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ ์ผ ํฐ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํด์ผ ํ๋ค.
n์๋ฆฌ์ 2์ง์์์ ๋์ฌ ์ ์๋ ์๋ 2์ n์น์ - 1๋งํผ ๋์จ๋ค.
์๋ฅผ ๋ค์ด 3์๋ฆฌ์ 2์ง์์์ ๋์ฌ ์ ์๋ ์ต๋๊ฐ์ 2์ 3์น์ -1์ด๋ฏ๋ก 7์ด๋ค. 1๋ถํฐ 7๊น์ง ๋์ฌ ์ ์๋ค๋ ๋ป์ด๋ค.
๊ทธ๋์ 1๋ถํฐ n์๋ฆฌ์ 2์ง์์์ ๋์ฌ ์ ์๋ ์ต๋๊ฐ๋งํผ ๋ฐ๋ณตํด์ ๋ฐ๋ณต๋๋ ์๋ฅผ 2์ง์๋ก ๋ณํ ํ, 1์ ๊ฐ์๋ฅผ ํ์ธํด์ 1์ ๊ฐ์๊ฐ a, b๊ฐ์ธ case๋ฅผ ๋ชจ๋ ๊ตฌํ ์ ์๋ค.
1์ ๊ฐ์๊ฐ a, b๊ฐ์ธ case๋ค์ ๋ชจ๋ ๊ตฌํ๊ณ ๋๋ฉด a, b case๋ค์์ aCase xor bCase๊ฐ ๊ฐ์ฅ ํฐ ๊ฐ์ด ์ฌ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์์ฃผ๋ฉด ๋๋ค.
๋ฌธ์ ํด๊ฒฐ ์ฝ๋
import java.io.BufferedReader
import java.io.InputStreamReader
import kotlin.math.max
import kotlin.math.pow
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val size = readLine().toInt()
val (a, b) = readLine().split(" ").map { it.toInt() }
val aCases = mutableListOf<Int>()
val bCases = mutableListOf<Int>()
for (i in 0 until 2.0.pow(size).toInt()) {
val value = i.toString(2)
val oneCnt = value.filter { it == '1' }.length
if (oneCnt == a) aCases.add(i)
if (oneCnt == b) bCases.add(i)
}
var answer = 0
for (i in 0 until aCases.size) {
for (j in 0 until bCases.size) {
answer = max(answer, aCases[i] xor bCases[j])
}
}
println(answer)
}
๋ฌธ์ ํ์ด
size์๋ฆฌ์ 2์ง์์์ ๋์ฌ ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ for๋ฌธ์ผ๋ก ๋ํ๋ธ ํ ๋ฐ๋ณตํ๋ค.
i์ 2์ง์๊ฐ์ 1์ ๊ฐ์๊ฐ a๊ฐ๋ฉด aCase์ ์ถ๊ฐํ๊ณ , b๊ฐ๋ฉด bCase์ ์ถ๊ฐํ๋ค.
์ถ๊ฐ๋ case๋ค์ ํ์ํด ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ชจ๋ ํ์ธํ๋ค.
aCase xor bCase์ ๊ฒฝ์ฐ๋ค ์ค ๊ฐ์ฅ ํฐ ๊ฐ์ ์ถ๋ ฅํ๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
๋ํ์์ ํ ๋๋ a, b์ ํฉ์ด n๋ณด๋ค ํฌ๋ฉด ์ค๋ณต๋๋ ์๊ฐ 1๊ฐ ์ด์ ์๋ค๋ ๋ป์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ์๋ํ๋ค.
3
2 2
์ case์ ๊ฒฝ์ฐ a + b๊ฐ 4์ด๋ฏ๋ก ๊ฐ ์๋ฆฟ์์ ์ค๋ณต๋๋ ๊ฐ์ด ์ต์ 1๊ฐ๋ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ 2์ง์ 111์์ 1๊ฐ์ 0์ ์ถ๊ฐํด์ ๋ผ ์ ์๋ ๊ฐ์ฅ ํฐ ๊ฐ์ธ 110 = 6์ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํ์ดํ๋ ค๊ณ ํ๋๋ฐ ์ค๋ต์ด ๋์๋ค.
์ด๋ค ๋ฐ๋ก๊ฐ ์๋์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค.
๊ทธ๋์ ๊ทธ๋ฅ ์ ์ฒด ํ์์ผ๋ก ํด๊ฒฐํ๋ค.
'๐ฏ | ๋ฐฑ์ค > ๐ | Bronze' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, B1] ๋ฐฑ์ค 31432๋ฒ ์์๊ฐ ์๋ ์ 3 (0) | 2024.10.17 |
---|---|
[Kotlin, B1] ๋ฐฑ์ค 21771๋ฒ ๊ฐํฌ์ผ ๊ฑฐ๊ธฐ์ ์๋ ๊ฑฐ ์๋์ผ (0) | 2024.09.19 |
[Kotlin, B1] ๋ฐฑ์ค 25551๋ฒ ๋ฉ์์ด ํฌ๋์ค (0) | 2024.09.13 |
[Kotlin] ๋ฐฑ์ค 10987๋ฒ ๋ชจ์์ ๊ฐ์ (0) | 2024.09.04 |
[Kotlin, B3] ๋ฐฑ์ค 15894๋ฒ ์ํ์ ์ฒด์ก๊ณผ๋ชฉ์ ๋๋ค (0) | 2024.09.03 |