최대 1 분 소요

[백준 2884번] 알람 시계

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package _1월_2주차;
 
import java.util.Scanner;
public class 백준_손수경_정답_2884 {
 
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        int h, m;
        h = sc.nextInt();
        m = sc.nextInt();
        //분아 45보다 큰지 작은지에 따라 구분
        if (m < 45) {
            if (h == 0) { //h = 0인 상태에서 1을 빼면 -1이 나오지만 원하는값으 23이 되어야 하므로 따로 처리
                h = 23;
            }
            else {
                h--;
            }
            m += 15//h에서 1시간(60분)을 뺏다. 하지만 원하는 출력값은 45분만 빼야되는 것이므로 m에 15분을 더해준다. 
        }
        else {
            m -= 45;
        }
        System.out.println(h + " " + m);
    }
 
}
cs


입력받은 m 이 45보다 크다면 바로 45를 빼서 출력값을 구할 수 있으므로 m 이 45보다 큰지 작은지를 기준으로 구분하였다. 이때 m 이 45보다 작다면(if문) h 에서 1을 빼주고 m 에서 15를 더해주어야 한다. h 에서 1(60분)을 뺏다. 하지만 문제에서는 45분을 빼라고 하였으므로 m 에 15를 더해서 원하는 값을 출력해준다.

댓글남기기