Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 안드로이드 os 구조
- 안드로이드 라이선스
- 2022 플러터 설치
- jvm 작동 원리
- rxjava disposable
- 자바 다형성
- 멤버변수
- jvm이란
- android ar 개발
- 안드로이드 레트로핏 사용법
- 스택 자바 코드
- 2022 플러터 안드로이드 스튜디오
- 스택 큐 차이
- 객체
- 안드로이드 유닛 테스트
- rxjava cold observable
- 클래스
- 안드로이드 라이선스 종류
- 안드로이드 유닛 테스트 예시
- ANR이란
- 안드로이드 레트로핏 crud
- 안드로이드 유닛테스트란
- Rxjava Observable
- rxjava hot observable
- 플러터 설치 2022
- 서비스 vs 쓰레드
- 큐 자바 코드
- android retrofit login
- ar vr 차이
- 서비스 쓰레드 차이
Archives
- Today
- Total
나만을 위한 블로그
[Algorithm] 백준 - 알람 시계 (2884) (Kotlin) 본문
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")
}
반응형
'알고리즘 문제 풀이 > 백준' 카테고리의 다른 글
[Algorithm] 백준 - 단어의 개수 (1152) (Kotlin) (0) | 2024.07.06 |
---|---|
[Algorithm] 백준 - ACM 호텔 (10250) (Kotlin) (0) | 2024.07.06 |
[Algorithm] 백준 - 아스키 코드 (11654) (Kotlin) (0) | 2024.06.07 |
[Algorithm] 백준 - 알파벳 찾기 (10809) (Kotlin) (0) | 2024.06.07 |
[Algorithm] 백준 - 음계 (2920) (Kotlin) (0) | 2024.06.06 |
Comments