300x250
반응형
- 문제
- 알고리즘
1. 상근이가 설정한 알람시간을 45분 앞당겨 출력한다.
2. Scanner로부터 입력받은 Minute가 45보다 작으면 Hour - 1을 하고, Minute는 60-(45-minute)하여 계산하라.
3. Minute가 45보다 크다면 그대로 Minute-45를 한다.
4. Hour가 0보다 작다면 H=23하여 23시로 설정한다.
- 풀이
- 1번 방법 (가장 일반적인 방법)
import java.util.*
fun main() : Unit = with(Scanner(System.`in`)) {
var H = nextInt()
var M = nextInt()
if(M<45) {
H--
M = 60-(45-M)
if(H<0) {
H=23
}
println("${H} ${M}")
} else {
println("${H} ${M}")
}
}
가장 보편적으로 사용 했을듯한 단순한 방법으로, 조건문 if else만을 사용하여 나타내었다.
계산하기 편하도록 M을 정수에서도 양수 범위 내로 표현하려고 노력하였다.
M을 계산하고, H가 -- 될 경우 H는 23시로 설정하였고, 그대로 출력만 해 주었다.
- 2번 방법
import java.time.LocalTime
import java.util.*
fun main() = with(Scanner(System.`in`)) {
val H = nextInt()
val M = nextInt()
val time = Local.Time.of(H, M).minusMinutes(45)
println("${time.H} ${time.M}")
}
시간(시, 분, 초)를 다루기에 아주 유용한 JAVA의 LocalTime 클래스를 사용한 방법이다.
클래스를 사용하기 위해 객체로 time을 생성 해 주었다.
시간은 입력받은 H와 M을 그대로 넣어 주었고, LocalTime 클래스의 메소드인 minusMinutes를 이용하여 -45분 해 주었다. (역으로 plusMinutes 또는 minusHours, plusHours 등도 가능.)
계산된 값을 println으로 시간과 분을 Split하여 출력하였다.
출처 : https://shrimp-burger.tistory.com/123
- 제출 결과 및 정리
처참하다..ㅎ
728x90
반응형
'코딩 (독학) > ★ Algorithm' 카테고리의 다른 글
[백준] 2741번 : N찍기 - Kotlin [코틀린] (0) | 2022.04.19 |
---|---|
[백준] 15552번 : 빠른 A+B - Kotlin [코틀린] (0) | 2022.04.15 |
[백준] 2480번 : 주사위 세개 - Kotlin [코틀린] (0) | 2022.04.15 |
[백준] 2588번 : 곱셈 - Kotlin [코틀린] (0) | 2022.04.06 |
[Kotlin Algorithm] 코틀린 알고리즘 문제풀이 TIP ! (0) | 2022.04.06 |