728x90
반응형
1. 문제
2884번: 알람 시계
상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,
www.acmicpc.net
- 원래 설정된 알람을 45분 앞선 시간으로 바꾸기
- H와 M은 설정해놓은 알람 시간(H)과 분(M)이며, 0 ≤ H ≤ 23, 0 ≤ M ≤ 59
- 하루의 시작은 0:0, 끝은 23:59
- 불필요한 0은 사용하지 않는다. 즉, 03 03이 아닌 3 3으로 표시한다.
2. 문제 풀이
1. 우선 입력받은 분에서 45분을 뺀다.
입력받은 분이 45분 이상 59분 이하이면 시간은 그대로 출력하고, 분은 45분 뺀 분을 출력한다.
6 50 -> 6 5
6 45 -> 6 0
2. 입력받은 분이 45분보다 작으면?
6 25 -> 6 -20 이 된다.
이 경우 H에서 1을 빼고, M에 60을 더하면 6 25 -> 5 40이 된다!
3. 입력받은 분이 45분보다 작아서 H-1을 했는데 시간이 마이너스가 된다면?
문제에서 시간은 0시~23시로 지정해 놓았다. 만약 입력된 시간이 0시 25분이었다면,
25분이 45분보다 작기 때문에 0시에서 1을 빼야 한다. 그럼 시간이 -1시가 되기 때문에
분에서와 마찬가지로 24를 더해준다.
0 25 -> 23 40이 된다.
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(); // 분
M = M - 45; // 입력받은 분에서 45분을 빼고
if(M < 0) { // 만약 마이너스가 나오면
H = H - 1; // 시간을 1 빼주고
M = 60 + M; // 마이너스 된 분을 60분과 더해서 최종 분을 구한다.
if(H < 0) { // H에서 1을 빼서 0이하가 되버린다면
H = 24 + H; // 24시간에 더하기
}
}
System.out.println(H + " " + M);
}
}
728x90
반응형
'JAVA > 백준 알고리즘' 카테고리의 다른 글
[백준] 2480번 주사위 세 개 - Java (0) | 2022.04.01 |
---|---|
[백준] 2525번 오븐 시계 - Java (0) | 2022.04.01 |
[백준] 14681번 사분면 고르기 - Java (0) | 2022.04.01 |
[백준] 2753번 윤년 - Java (0) | 2022.03.31 |
[백준] 9498번 시험 성적 - Java (0) | 2022.03.31 |