공부하기/백준

[Java] 백준 풀기 2884 - 알람 시계

XEV 2023. 6. 21. 23:13

자바 백준 2884번

브론즈 3

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

 

2884번: 알람 시계

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

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 사칙연산

 

 

 

 

 

문제 풀기

조건문을 이용하여 minute 에 대한 두 개의 분기점을 만들고, hour 에 대한 두 개의 분기점을 만든다.

 

minute 이 45 보다 크면 minute 에 -45를 하여 바로 내보내고, 그렇지 않고 45 보다 작으면 minute 에 +15 를 하여 저장한다.

minute 가 45 보다 작은 경우, hour 이 0 일 경우 이 전날로 표기하기 위해 hour 을 23 으로 저장하고, 0 이 아닌 그 외의 시각에 대해서는 기존 hour 에 -1 을 하여 저장한다.

 

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 시와 분 입력 받기
        int hour = sc.nextInt();
        int minute = sc.nextInt();
        
        // 45분을 뺀 시간 계산
        String result = calcTheTime45MinAgo(hour, minute);
        
        // 결과 출력
        System.out.print(result);
    }
    
    public static String calcTheTime45MinAgo(int hour, int minute) {
        if (minute >= 45) {
            minute -= 45;
        } else {
            minute += 15;
            if (hour == 0) {
                hour = 23;
            } else {
                hour -= 1;
            }
        }
        return hour + " " + minute;
    }
    
}