알고리즘 문제 풀이/백준

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

참깨빵위에참깨빵_ 2024. 6. 6. 19:50
728x90
반응형

 

입력받은 2가지 숫자를 24시간 표현에 맞게 고쳐서 출력하면 된다.

 

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")
}

 

입력받은 숫자 중 첫 번째가 시, 두 번째가 분이라고 생각한다. 이 때 45분 이른 시간을 구해야 하기 때문에 min에서 45를 뺀다.

이 때 min이 음수가 될 수 있다. 10을 입력받은 경우 10 - 45 = -35기 때문에 이 음수를 양수로 보정하는 처리가 필요하다.

우리가 시간을 계산할 때 계산 과정을 생각해 보자. 10시 10분에서 45분 빠른 시간을 구한다면 우선 10에서 1을 빼고, 그 후 10에서 45를 뺀 다음 60을 더한다. 10 - 45 + 60이 되어 25가 되고, 결국 9시 25분이 구하는 시간이 된다.

이것을 코드로 옮긴 것이 아래 부분이다.

 

min -= 45

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

 

반응형