[Baekjoon 2884번] if문-알람 시계 문제풀이

반응형
728x90
반응형

백준 2884번

 

 

 

제출 코드

1) 기본
import java.util.Scanner;

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

        String A = sc.nextLine();
        String[] array = A.split(" ");

        int hour = Integer.parseInt(array[0]);
        int minute = Integer.parseInt(array[1]);

        if (minute >= 45) {
            minute = minute - 45;
        } else {
            minute = 60 + minute - 45;
            hour = hour - 1;

            if (hour < 0) {
                hour = hour + 24;
            }
        }

        System.out.println(hour + " " + minute);

    }
}

 

입력된 시간의 분(minute)이 45분 이상이라면 45분을 뺀 시간 그대로, 시간(hour)에 변화가 없다.  하지만 만약 분(minute)이 45분 미만이라면, 아래와 같이 minute, hour이 계산되어진다.

 

* minute : 45분을 빼고, 60분을 더한다.
* hour : 0보다 작아질때 + 24시를 한다.

 

예를 들어, 0 10 이 입력되었을때는 23 25가 입력되어야한다. hour - 1 이 0보다 작은 -1인 경우일때 +24를 해서 23시가 만들어진다.

 

2) Java8의 LocalTime 사용
import java.time.LocalTime;
import java.util.Scanner;

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

        String A = sc.nextLine();
        String[] array = A.split(" ");

        LocalTime localTime = LocalTime.of(Integer.parseInt(array[0]), Integer.parseInt(array[1]));
        localTime = localTime.minusMinutes(45);

        System.out.println(localTime.getHour() + " " + localTime.getMinute());

    }
}

 

Java8에서 제공하는 LocalTime 을 사용하여 해결할 수도 있다. mimusMinutes 를 사용하여 45분을 뺀 시간을 바로 구할 수 있다.

 

 

반응형

Designed by JB FACTORY