본문 바로가기
Algorithm/Baekjoon

[백준 알고리즘][자바] 2884번 : 알람시계

by hyunipad 2021. 1. 9.
반응형

https://www.acmicpc.net/problem/2884

 

2884번: 알람 시계

상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,

www.acmicpc.net

 

문제 해설

두 정수 H(시간), M(분)을 입력했을 때, 45분 앞서는 시간으로 출력을 해줘야 한다.

여기서 포인트는 45분 앞선 시간을 출력할 때, 시간의 변화를 체크해서 출력해줘야 한다는 점

 

해결 방법

M(분)이 음수로 떨어지면 H(시간)이 한시간 마이너스된다. M은 0~59 사이의 숫자이기 때문에 60진법이라고 생각하면 쉽게 풀 수 있다. 여기서 주의할 점은 H(시간)이 0시에서 23시로 갈 때만 체크해주면 된다.

 

import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int H, M, set_H, set_M;
        H = scan.nextInt();
        M = scan.nextInt();
 
        if (0 <= H && 23 >= H && 0 <= M && 59 >= M) {
            set_H = H;
            set_M = M - 45;
            if (set_M < 0) {
                set_H--;
                if (set_H < 0) {
                    set_H = 23;
                }
                set_M = set_M + 60;
            }    
            System.out.println(set_H + " " + set_M);
        }
 
    }
 
}
반응형

댓글