문제
문제 이해
문제를 간단하게 요약하면, 상근이가 설정한 시간에서 45분 일찍 알람이 울리게 하는 것이다.
중요한 것 : 24시간 표현을 사용한다는 것. ( 불필요한 0은 사용하지 않음 )
알고리즘
1. 설정한 시간의 '분'이 숫자 45보다 크거나 같다면 '시'는 그대로 두고, '분 - 45'를 하면 됨.
2. 설정한 시간의 '분'이 숫자 45보다 작으면 '시 - 1'을 해준 후, '60 - ( 45 - 분 )'를 하면 됨.
( 만약 '시'가 0이라면, 23으로 바꿔줘야 함 !! )
이를 코드로 표현해보자 ! !
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int H = in.nextInt();
int M = in.nextInt();
in.close();
if(M >= 45) {
M = M - 45;
System.out.println(H + " " + M);
} else {
H--;
M = 60 - (45-M);
if (H < 0) {
H = 23;
}
System.out.println(H + " " + M);
}
}
}
오류
계속 틀려서 왜지..? 를 반복..
1. M >= 45에서 = 를 계속 빼먹음..
2. H < 0 경우 H를 23으로 만들어주는 코드를 계속 H == 0 인 경우로 작성함.
근데, 이 경우는 왜 안 될까? 조건에서 입력받는 게 0 <= H <= 23 이라고 나와있는데.. (다시 찾아보기..!)
반응형
'백준 문제 풀이 > 조건문' 카테고리의 다른 글
(#2480 Java) 주사위 세 개 (0) | 2023.07.26 |
---|---|
(#2525 Java) 오븐 시계 (다시 풀어야 함) (0) | 2023.07.26 |