백준 2884
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int h = sc.nextInt();
int m = sc.nextInt();
if(m >= 45){
m = (m - 45);
} else if(h < 1){
h = (h + 23);
m = (m + 15);
} else {
h = (h - 1);
m = (m + 15);
}
System.out.println(h + " " + m);
sc.close();
}
}
2단계 if문제의 마지막 문제입니다. 박수!!
이번 문제도 이전 문제들과 큰 차이는 없습니다.
시간 관련 문제라서 60분을 기준으로 했을 때 시간과 분을 구분해서 작성하면 됩니다.
문제에서 원하는 바는 45분 빠른 알람 설정이기 때문에 이것이 기준이 됩니다.
'분' >= 45 조건에서는 단순히 45분을 빼면 됩니다.
하지만 '분'이 45보다 작을 때는 0보다 작아지면 다시 숫자가 커지는데, 이때 '시'에서 60분을 빌려옵니다.
분 < 45 조건에서는 '시' + 1, ('분' -45) + 60 == '분' + 15가 됩니다.
마지막으로 '시'는 0보다 작아지면 23으로 변하기 때문에 '시' + 23, '분' + 15를 하면 됩니다.
다른 방식도 많을 것 같지만 이게 제일 간단해보였습니다.
++
참고로 계산식에 괄호는 사용하지 않아도 되지만 정확히 표현하기 위해 사용했습니다.
'백준 알고리즘 - JAVA8 > 2단계 if문' 카테고리의 다른 글
[백준 자바 14681] 사분면 고르기 (0) | 2020.12.28 |
---|---|
[백준 자바 2753] 윤년 (0) | 2020.12.28 |
[백준 자바 9498] 시험 성적 (0) | 2020.12.28 |
[백준 자바 1330] 두 수 비교하기 (0) | 2020.12.28 |
최근댓글