💡문제 접근 방법
입력받은 Hour과 Minute에서 45분전의 시간을 구하면 문제는 해결된다. '45분'의 기준이 중요하다. 45분을 기준으로 ①45보다 작으면 Hour을 -1 해준다. ②45분 보다 큰 경우에는 입력받은 Minute에서 -45를하면 45분 전의 시간이 구해진다. 또한 ③Hour가 0보다 작은 경우에는 Hour을 23으로 수정한다. ②를 제외한 경우에서는 Hour을 구했지만, Minute을 구하지 못했다. Minute은 45분 보다 클경우 Minute-45를 하면 되지만 45분 보다 적을 경우에는 이야기가 달라진다. Minute은 60분이니 입력값이 45분 보다 적은경우 (45-입력값)의 차이만큼 60에서 뺴준다. 즉 '60-(45-입력값)'이 된다.
①만약 18:20에서 45분 전의 시간을 구하면 17:30분이 되는데, 결과 값에서 보듯 Hour 18에서 -1을하여 17이 된 걸 확인 할 수 있다. 다른 시간을 가져와도 똑같이 적용된다.
③주어진 시각에서 Minute이 45보다 적으면 Hour을 -1한다. 만약 주어진 시간이 0:20이면 결과값이 -1:30이 된다. '-1:30'이라는 숫자는 없다. 23:30이 나와야한다. 그래서 Hour이 0보다 작은 경우에는 Hour을 23으로 수정한다.
💡정답
import java.util.Scanner;
public class Qno2884 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int H = sc.nextInt();
int M = sc.nextInt();
sc.close();
if(M < 45) {
H--;
M= 60 - (45-M);
if(H < 0) {
H = 23;
}
System.out.println(H + " " + M);
}
else {
System.out.println(H + " "+(M-45));
}
}
}
'java > 백준 알고리즘' 카테고리의 다른 글
[백준알고리즘/배열] 10807번 : 개수 세기 - JAVA (0) | 2023.03.21 |
---|---|
[백준알고리즘/조건문] 2525번 : 오븐시계 - JAVA (0) | 2023.03.16 |
[백준 알고리즘/조건문] 2439번 별 찍기 -2 (0) | 2023.03.08 |
[백준 알고리즘/조건문] 25304번 영수증 (0) | 2023.03.07 |
[백준 알고리즘/조건문] 2480번 : 주사위 세 개 - JAVA (0) | 2023.03.03 |