관리 메뉴

나만을 위한 블로그

[Algorithm] 백준 - 알람 시계 (2884) (Kotlin) 본문

알고리즘 문제 풀이/백준

[Algorithm] 백준 - 알람 시계 (2884) (Kotlin)

참깨빵위에참깨빵 2024. 7. 6. 20:11
728x90
반응형

 

시간과 분이 입력으로 주어지면 그 시간에서 45분 이전의 시간을 구해야 한다.

우리가 시간을 계산할 때 어떻게 계산하는지를 생각해 본다. 10시 10분에서 45분 이전의 시간이 뭔지 질문받으면 분침을 뒤로 돌리는 상상을 하는 대신, 어떤 순서로 시간을 계산할까?

먼저 10에서 45를 뺀다. 그러면 -35라는 음수가 나오는데, 음수인 시간은 존재하지 않기 때문에 앞에 있는 시간에서 60분을 가져온다.

즉 10에서 1시간(60분)을 가져와서 -35에 더해 분을 구한다. 시간은 10 - 1 = 9가 되고, 결과적으로 9시 25분이라는 시간을 얻는다.

그리고 2번째 입출력 예시를 보면 입력이 0시 30분인 경우 출력이 23시 45분이라 이 예외처리도 해야 한다.

 

fun main() {
    var (hour, min) = readln().split(" ").map { it.toInt() }

    min -= 45

    if (min < 0) {
        min += 60
        hour -= 1
    }
    if (hour < 0) {
        hour = 23
    }

    println("$hour $min")
}

 

반응형
Comments