구상한 알고리즘 ( 변경 전 )
예제와 같은 입력값을 주기 위해 Scanner를 사용하였고, 45분 빠르게 출력하기 위해서 시간은 -1 분은 +15을 해주었다.
정상적으로 작동했지만 백준에선 틀리다고 나왔다...
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int H = sc.nextInt();
int M = sc.nextInt();
int hour = H-1;
int minute = M+15;
if(H == 1){
System.out.println(12+" "+minute);
}if(H == 0){
System.out.println(23+" "+minute);
}else {
System.out.println(hour+" "+minute);
}
}
}
변경 후
import java.util.Scanner;
public 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) {
H--;
int minute = M + 15;
if (H < 0) {
H = 23;
}
System.out.println(H + " " + minute);
}else {
System.out.println(H + " " + (M - 45));
}
}
}
입력값은 Scanner로 똑같이 해주었지만 조건문을 추가해주었다.
45분보다 낮을땐 H값을 하나씩 뺴주고 분에 15를 더해주었고
-1값이 나올수 있기떄문에 H에도 조건을 걸어주어 23시로 맞춰주었다.