알고리즘 문제 풀이/백준
[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")
}
반응형