[백준 - 1072] 게임

문제링크

import kotlin.math.min

fun main() {
    val bufferedReader = System.`in`.bufferedReader()
    val bufferedWriter = System.out.bufferedWriter()

    val (x, y) = bufferedReader.readLine().split(" ").map { it.toLong() }
    val z = getZ(x, y)
    var start: Long = 0
    var end: Long = 1_000_000_000
    var minExtraGameCount = end
    while (start <= end) {
        val mid = (start + end) / 2
        if (getZ(x + mid, y + mid) != z) {
            minExtraGameCount = min(minExtraGameCount, mid)
            end = mid - 1
        } else {
            start = mid + 1
        }
    }
    if (minExtraGameCount == end) bufferedWriter.write("-1")
    else bufferedWriter.write("$minExtraGameCount")

    bufferedReader.close()
    bufferedWriter.close()
}

fun getZ(x: Long, y: Long) = (y * 100/ x)

주석 없는 코드를 만들기 위해 노력하는 개발자입니다.

혹시라도 의도가 분명하지 않아보이는 (이해가 되지 않는) 코드가 있으시다면 편하게 답변 달아주시면 정말 감사하겠습니다.

좋은 웹페이지 즐겨찾기