๊ณจ๋ ๋ฌ์(10275๋ฒ)
Bronze 1
#์ํ #๊ตฌํ
https://www.acmicpc.net/problem/10275
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
a, b ์ค์ ํ๋๋ฅผ 2์ ์ ๊ณฑ์๋ง์ ์ด์ฉํด ๋ง๋ค์ด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด 24๋ 16 + 8๋ก ๋ง๋ค ์ ์๋๋ฐ, ์ด๋ ์ฐจ์๊ฐ ๊ฐ์ฅ ์ ์ ์๋ฅผ ๋ง๋ค๊ธฐ ์ํด 2์ n์ ๊ณฑํ ์์์ ๋ช ๋ฒ์ ๋ฐ์ผ๋ก ์๋ผ์ผ ๋ง๋ค ์ ์๋์ง ๊ตฌํ๋ฉด ๋๋ค.
a, b์ ์ ํํ ์๊ตฌ๋ ์๋งํผ๋ง ๋ค์ด๊ฐ์ผ ํ๋ค๋ ๊ฒ๊ณผ a + b๊ฐ 2์ n์ ๊ณฑ๊ณผ ๊ฐ๊ธฐ ๋๋ฌธ์ a์ b ์ค ํ๋๋ง ๊ตฌํด๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ ์ ์๊ฒ ๋๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์๊ฐํ๊ฒ ๋๋ฉด ํ๋๋ง ๊ตฌํด๋ ๋๋ค๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ด๋ค.
๋ฌธ์ ํด๊ฒฐ ์ฝ๋
import java.io.BufferedReader
import java.io.InputStreamReader
import kotlin.math.min
fun main() {
val bf = BufferedReader(InputStreamReader(System.`in`))
val t = bf.readLine().toInt()
val answer = StringBuilder()
for (i in 0 until t) {
val (n, a, b) = bf.readLine().split(" ").map { it.toLong() }
var gold: Long = 1
for (j in 0 until n) {
gold *= 2
}
if (a % 2 == 1L) {
answer.append("$n\n")
continue
} else {
var target = min(a, b)
var cut = 0
while (target != 0L) {
if (gold > target) {
gold /= 2
cut++
} else {
target -= gold
}
}
answer.append("$cut\n")
}
}
println(answer)
}
๋ฌธ์ ํ์ด
a, b ์ค ๋ ์์ ๊ฐ์ ๊ตฌํด์ ์ฌ์ฉํ๊ฒ ๋ค.
n์ ์ต๋๊ฐ์ด 62์ด๊ธฐ ๋๋ฌธ์ int ๋ฒ์๋ฅผ ๋๋๋ค. ๋น์ฐํ a, b๋ int ๋ฒ์๋ฅผ ๋์ ์ ์๋ค.
long์ผ๋ก ๊ฐ์ ๋ฐ์์ค๋ค.
gold์ ๊ฐ์ pow ํจ์๋ฅผ ํตํด ๊ตฌํด์ค ์๋ ์๊ฒ ์ง๋ง, ์์์ ์ค์ฐจ๊ฐ ๋ ์๋ ์๊ธฐ ๋๋ฌธ์ ์ง์ ๋ฐ๋ณตํด์ ๊ตฌํด์ค๋ค.
a, b๊ฐ ํ์๊ฐ ๋ค์ด์ค๊ฒ ๋๋ค๋ฉด 1์ด ํ์ํด์ง๊ธฐ ๋๋ฌธ์ ๋ฌด์กฐ๊ฑด n๋ฒ ์๋ผ์ค์ผ ํ๋ค.
if๋ก ๊ฑธ๋ฌ์ค ๋ค์ ์ง์์ธ ๊ฒฝ์ฐ๋ง ํ์ธ์ ํ๋ฉด ๋๋ค.
target์ ๋ง๋ค์ด์ a, b ์ค ๋ ์์ ๊ฐ์ผ๋ก ์ ์ฅํ๊ณ , 0์ด ๋ ๋๊น์ง ์๋ผ ์ฃผ๊ฒ ๋ค.
target๋ณด๋ค gold๊ฐ ๋ ํฌ๋ค๋ฉด gold๋ฅผ ์ ํํ ๋ฐ์ผ๋ก ๋๋ ์ฃผ๊ณ cutting ์นด์ดํธ๋ฅผ ์ธ์ค๋ค.
target์ด gold๋ณด๋ค ๋ ํฐ ๊ฒฝ์ฐ์๋ target์์ gold๋ฅผ ๋นผ์ค๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
์ ํํ ๊ฐ๋ฐฉ์ ์ง์ด๋ฃ์ด์ผ ํ๋ค๋ ์ฌ์ค์ ๋ชจ๋ฅด๊ณ ๋ฌธ์ ๋ฅผ ๋ณด๊ฒ ๋๋ฉด ์ดํดํ๊ธฐ๊ฐ ํ๋ค ์๋ ์๋ค.
์ฒ์์๋ case 10 1000 24๋ฅผ ๋ณด๊ณ 24๋ณด๋ค ์์ ์ ๊ณฑ์๊ฐ 16์ด๊ธฐ ๋๋ฌธ์ 10 - 4 = 6์ด๋ผ๋ ๊ฒฐ๋ก ์ ๋์ถํ๋๋ฐ ๋น์ฐํ ํ๋ฆฐ ์ ๊ทผ์ด๋ค.
๋ํ ํ์์ธ ๊ฒฝ์ฐ์๋ ๋ฌด์กฐ๊ฑด 1์ด ํ์ํด์ง๊ธฐ ๋๋ฌธ์ n๋ฒ์ cutting์ด ํ์ํด์ง๋ค๋ ๊ฒ์ ์๊ฒ ๋๋ฉด ์๊ฐ์ ์ ์ฝํ ์ ์๊ฒ ๋๋ค.
'๐ฏ | ๋ฐฑ์ค > ๐ | Bronze' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, B1] ๋ฐฑ์ค 31432๋ฒ ์์๊ฐ ์๋ ์ 3 (0) | 2024.10.17 |
---|---|
[Kotlin, B1] ๋ฐฑ์ค 32343๋ฒ ๋๋ ๋ ๋นํธ (0) | 2024.09.23 |
[Kotlin, B1] ๋ฐฑ์ค 21771๋ฒ ๊ฐํฌ์ผ ๊ฑฐ๊ธฐ์ ์๋ ๊ฑฐ ์๋์ผ (0) | 2024.09.19 |
[Kotlin, B1] ๋ฐฑ์ค 25551๋ฒ ๋ฉ์์ด ํฌ๋์ค (0) | 2024.09.13 |
[Kotlin] ๋ฐฑ์ค 10987๋ฒ ๋ชจ์์ ๊ฐ์ (0) | 2024.09.04 |