본문 바로가기
코딩공부/백준 (java)

[백준 2884] 알람 시계 (java)

by CodingKwon 2021. 6. 28.

문제 링크

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

 

2884번: 알람 시계

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

www.acmicpc.net

 

나의 코드 (java)

방식1

import java.util.Scanner;

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

        int H = scanner.nextInt();
        int M= scanner.nextInt();
        if (M < 45 )
            if (H - 1 >= 0){
                System.out.println((H-1) + " "+ (M+15));
            } else {
                System.out.println(23 + " "+ (M+15));
            }
        else
            System.out.println(H + " " + (M-45));
    }
}

방식2

import java.util.Scanner;

public class Main {
    public static void check(int H1, int M1){
        // flag는 Min이 음수인지 검증 (1 : 양, 2 : 음)
        int flag = 1;
        if (M1 - 45 < 0) {
            flag = 0;
            // 분 - 45가 음수일 경우
            M1 = 60 + M1 - 45;
        } else {
            // 분 - 45가 양수일 경우
            M1 = M1 - 45;
        }

        if(flag == 1){
            // flag 1일때는 H를 수정 필요 없음
        } else {
            if (H1 - 1 >= 0){
                // 시간을 -1 했을 때 0보다 크거나 같을 경우
                H1 = H1 - 1;
            } else {
                // 시간을 -1 했을 때 0보다 작을 경우
                H1 = 24 - 1;
            }
        }
        System.out.println(H1 + " " + M1);
    }

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int H, M;

        H = sc.nextInt();
        M = sc.nextInt();

        check(H, M);
    }
}

'코딩공부 > 백준 (java)' 카테고리의 다른 글

[백준 10950] A+B - 3 (java)  (0) 2021.07.01
[백준 2739] 구구단 (java)  (0) 2021.06.30
[백준 14681] 사분면 고르기 (java)  (0) 2021.06.28
[백준 2753] 윤년 (java)  (0) 2021.06.28
[백준 9498] 시험 성적 (java)  (0) 2021.06.28

댓글