[백준] B2884 알람시계 - JAVA

Dev_JDra·2021년 11월 29일
0

백준

목록 보기
1/9
  • 문제

※주의

  • 24시간에서 23시간일때 0으로 바뀐다.
  • 입력시 시간/분 구분은 공백으로 한다.

  • 접근방법
    1. 입력 받은 minute가 45분 이상인지 45분 미만인지 구분한다.
    2. minute가 45분 이상인 경우 현재 minute - 45 해준다.
    3. minute가 45분 미만인 경우 hour에서 -1 해주고 minute에서 -45 해준다.(단, hour가 0인 경우 23시 이어야 한다)


  • 풀이
import java.io.*;
import java.util.StringTokenizer;

public class B2884 {

    public static void main(String[] args) throws IOException {

        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        String time = bf.readLine();
        //readLine은 한 행을 전부 읽기 때문에 공백 단위로 입력한 문자열을 분리 해주어야함.
        StringTokenizer st = new StringTokenizer(time, " ");
        //StringTokenizer 클래스를 이용해 분리 해준다.

        int hour = Integer.parseInt(st.nextToken());
        int minute = Integer.parseInt(st.nextToken());
        //st.nextToken()은 문자열을 반환하기 때문에 int형으로 변환 
        
        if(minute >= 45) { //45분 이상인 경우
            minute -= 45;
            bw.write(hour + " " + minute);
        }
        else if(minute < 45){ //45분 미만인 경우

            if ( hour == 0) { // 시간이 0시간일때
                hour = 23;
            }else{
                hour -= 1;
            }
            int minus = minute - 45;
            minute = 60 + minus;

            bw.write(hour + " " + minute);
        }
        bw.flush();
        bw.close();
    }
}

0개의 댓글