study/algorithm

[알고리즘] 알람 시계 - 백준 2884번

박허디 2024. 6. 14. 13:11

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

 

45분 전의 시간을 구하면 되는 문제

 

입력받은 분을 45(m) 기준으로 45보다 작으면 시(h)를 -1 하고 45보다 크면 분(m)에 -45 하면 된다 

시(h)가 0보다 작아질 경우 시(h)를 23으로 수정한다

 

+ 분은 60분이니까 입력값이 45보다 작을 경우엔 (45-입력값) 만큼 60에서 빼주면 된다.

* 60 - (45 - 입력값) 

 

1 ) 45분보다 작은지 확인 : if ( m < 45 )

   2 - 1 ) 시(h)가 0보다 작은지 확인 : if (h < 0 )

1 - 2 ) 1단계 조건 외 : else  

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        
        StringTokenizer st = new StringTokenizer(str, " ");
        
        int h = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        
        if(m < 45){
            h--;
            m = 60 - (45 - m);
            if(h < 0){
                h = 23;
            }
            System.out.println(h + " " + m);
        } else {
            System.out.println(h + " " + (m - 45));
        }
    }
}

 

 

 

이렇게 할 수 있다.