Java - [백준]2525 오븐 시계
본문 바로가기
알고리즘 풀이/백준

Java - [백준]2525 오븐 시계

by IYK2h 2022. 8. 23.
728x90

문제에서 중요하게 봐야하는건

두 번째 줄에는 요리하는 데 필요한 시간 C (0 ≤ C ≤ 1,000)가 분 단위로 주어진다.

이 부분이다.

예제 1입력

14 30
20

예제 출력

14 50

이런식으로 나오는데

예제 입력의 두번째 줄의 값이 c의 값이다.

c의 값은 0~1000 이기 때문에

int c = Integer.parseInt(bf.readLine());
int quotient = c/60; // 입력값을 시간과 
int remainder = c%60; // 분으로 나눴다.

c값을 60분 기준으로 시간, 분으로 나눠서 저장하고

if (quotient >= 1){ // 몫이 1을 넘을때 -> 입력값이 1시간 보다 클 때
  h = h+quotient; // 기존 시간에 입력된 시간 더하기
  m= m+remainder; // 기존 시간에 입력된 분 더하기
  if (m >= 60) {
    h++;
    m=m-60;
  }
  if(h>=24){
    h=h-24;
  }
}
else { //입력 값이 1시간 보다 작을 때
  m=m+c;
  if (m>=60){
    h++;
    if(h>=24){
      h=h-24;
    }
    m=m-60;
  }
}

문제 풀이 단계

  1. 입력값의 범위 확인
  2. 입력값을 / , % 을 사용해 시간과 분으로 분리하기.
  3. 입력된 값이 60분 보다 큰지 여부
  4. 입력된 값의 분(min)을 더한 분(min)이 60분 보다 큰지 여부

전체 코드

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(bf.readLine(), " ");

        int h = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());

        int c = Integer.parseInt(bf.readLine());
        int quotient = c/60;
        int remainder = c%60;
        if (quotient >= 1){
            h = h+quotient;
            m= m+remainder;
            if (m >= 60) {
                h++;
                m=m-60;
            }
            if(h>=24){
                h=h-24;
            }
        }
        else {
            m=m+c;
            if (m>=60){
                h++;
                if(h>=24){
                    h=h-24;
                }
                m=m-60;
            }
        }
        System.out.println(h+" "+m);
    }
}
728x90

댓글