[백준] 캔디 구매 (2909)(kotlin)

문제 설명

백준 2909번 문제 링크

입력 및 출력

» 입력

첫째 줄에 사탕의 가격 C와 상근이가 가지고 있는 지폐의 액면가에 적혀있는 0의 개수 K가 주어진다. (0 ≤ C ≤ 1,000,000,000, 0 ≤ K ≤ 9)

» 출력

첫째 줄에 상근이가 내야하는 가격을 출력한다.

예제 입출력(테스트케이스)

입력 출력
184 1 180

문제 풀이1

import kotlin.math.pow

fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    val (C, K) = readLine().split(" ").map { it.reversed() }

    var up = false
    val cost = C.mapIndexed { index, c ->
        when {
            index < K.toInt() - 1 -> '0'
            index == K.toInt() - 1 -> {
                if (c >= '5') up = true
                '0'
            }
            else -> c
        }
    }.reversed()
        .joinToString("")
        .toInt() + if (up) 10.0.pow(K.toInt()) else 0.0
    
    println(cost.toInt())
}