백준 2884 (알람 시계)
2024. 4. 17. 12:01ㆍ백준
아래는 문제를 풀기위한 코드입니다.
먼저 코드의 풀이 과정을 설명 드리면,
1. 먼저 분과 시의 값을 입력 해서 받을 변수 두 개를 선언합니다.
2. 그리고, 분이 45보다 적을 때의 경우와 시가 0보다 작을 경우에는 23으로 시를 지정합니다.
참고로 분을 45분 전으로 구하는 공식은 두가지로 나뉘는데,
- 45보다 분이 작을 때
60- (45-분(M))
- 45보다 분이 클 때
분(M) - 45로 하면 됩니다.
3. 그리고, 45보다 적을 때와 시가 0보다 작을 경우가 아닌 그 외의 경우를 아까 언급 45보다 분이 클 때를 적용합니다.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
int H = sc.nextInt();// 시를 나타 내는 변수
int M = sc.nextInt(); // 분을 나타내는 변수
if(M < 45) { // 분이 45분 보다 적을 때
H--; // 시(hour) 1 감소
M= 60 - (45 - M); // 분(min) 감소
if(H < 0) {// 시간이 0보다 클 때
H = 23; // 시간을 23으로 변경
}
System.out.println(H + " " + M); // 시와 분을 나타냄
}
else { //그외의 경우(시와 분이 45보다 클 때의 경우)
System.out.println(H + " " + (M - 45)); // 분-45 적용 후 시와 분을 출력
}
}
}
'백준' 카테고리의 다른 글
백준 2588번 문제(곱셈) (0) | 2024.04.15 |
---|