
사진 출처 : https://www.acmicpc.net/


이번 문제는 시(hour)와 분(minute)를 하나 씩 따져 봐야했기에 조건문 위주로 사용했다.
Scanner sc = new Scanner(System.in);
int hour = sc.nextInt();
int minute = sc.nextInt();
if ((hour >= 0 && hour <= 23) && (minute >= 0 && minute <= 59)) {
minute -= 45;
if (minute < 0) {
minute += 60;
hour -= 1;
if (hour < 0) hour += 24;
System.out.println(hour + " " + minute);
} else System.out.println(hour + " " + minute);

1. 첫 조건문에서 시간이 0시 ~ 23시 및 0분 ~ 59분 확인하기


- 45분 일찍 설정 및 첫 조건문
45미만의 분을 설정해주면 음수의 값을 갖냐 갖지 않냐를 두고 조건문을 만들었다.

- if minute < 0 == true
앞서 -45 해준 값이 음수가 나온다면 minute에 +60 하고 hour -1 을 해주면 시간이 맞는다.
ex) hour : 11, minute : 20 (- 45)
hour : 10 (+ 1), minute : -25 (+ 60)
그리고 만일 새벽 0시 대로 시간을 맞췄다면, hour은 음수를 갖게 되니 밤으로 넘어갈 수 있도록 +24를 해준다.
