반응형
풀이
문제가 어쩌구 저쩌구 엄청 긴데 몇 시, 몇 분을 입력하면 입력한 시간에서 45분을 뺀 뒤 출력해주라는 문제이다.
`하루는 24시간`이고 `1시간은 60분`이라는 것을 염두에 두고 문제를 풀면 되겠다.
이게 왜 중요하냐면 우리가 평소에 사용하는 십진법과 받아내림이 다르기 때문에 컴퓨터한테 발생할 수 있는 모든 경우의 수에 대한 대처법을 알려줘야한다.
45분을 빼는 계산에서 발생할 수 있는 경우의 수는 이렇다.
- `M(분)이 45이상일때` : M(분)에서 45를 빼주기만 하면 된다.
- `M(분)이 45미만일때` : H(시)에서 1을 빼고 M(분)에 15를 더해주면 된다.(1시간은 60분)
- `M(분)이 45미만인데, H(시)가 0일때` : H(시)가 0일 경우 23을 출력해주고 M(분)에 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();
sc.close();
if(H==0 && M<45){
System.out.print(23+" "+(M+15));
} else if(M<45){
System.out.print((H-1)+" "+(M+15));
} else{
System.out.print(H+" "+(M-45));
}
}
}
느낀점
이 문제같은 경우는 경우의 수가 얼마 되지 않아서 다행이지만
모든 경우의 수라는 말은 얼마나 무서운가. 내가 닥터스트레인지도 아니고.
반응형
'JAVA > 백준(BAEK JOON)' 카테고리의 다른 글
[백준] 1085번: 직사각형에서 탈출 자바(JAVA) (0) | 2023.03.06 |
---|---|
[백준] 2739번 구구단 자바(JAVA) (0) | 2022.06.14 |
[백준] 2558번 곱셈 자바(JAVA) (0) | 2022.06.13 |
[백준] 2439번 별 찍기 - 2 자바(JAVA) (0) | 2022.06.12 |
[백준] 2438번 별 찍기 - 1 자바(JAVA) (0) | 2022.06.11 |