(백준/자바) 2525호: 오븐 시계

문제 정보

제목 : 오븐 시계

숫자 : 2525호

사용 언어: 자바

문제 링크

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

2525호: 오븐 시계

첫 줄에서 끝나는 시간의 시와 분 사이에 공백을 두고 출력합니다.
(단, 시는 0부터 23까지의 정수이고, 분은 0부터 59까지의 정수입니다.
디지털 시계는 23시 59분부터 1분이 지나면 0시가 됩니다.
)

www.acmicpc.net

시간 제한 메모리 제한
1 초 128MB

문제

코이전자는 건강하고 맛있는 오리훈제 요리를 손쉽게 만드는 인공지능 오븐 개발에 도전하고 있습니다.
인공지능 오븐을 사용하는 방법은 훈제오리 재료를 인공지능 오븐에 적당량 넣는 것이다.
그러면 인공지능 오븐이 자동으로 오븐 로스팅 시간을 분 단위로 계산해줍니다.

또한 KOI 전자의 AI 오븐 전면에는 훈제 오리 요리가 완성되었음을 사용자에게 알려주는 디지털 시계가 있습니다.

훈제 오리의 시작 시간과 오븐 로스팅에 필요한 시간을 분 단위로 입력하여 오븐 로스팅 종료 시간을 계산하는 프로그램을 작성하십시오.

입력

첫 번째 줄에는 현재 시간이 포함됩니다.
현재 시간은 A 시(0 ≤ A ≤ 23), B 분(0 ≤ B ≤ 59) 순서로 공백으로 구분된 정수로 표시됩니다.
두 번째 줄은 요리 시간 C(0 ≤ C ≤ 1,000)를 분 단위로 나타냅니다.

인쇄

첫 줄에서 끝나는 시간의 시와 분 사이에 공백을 두고 출력합니다.
(단, 시는 0부터 23까지의 정수이고, 분은 0부터 59까지의 정수입니다.
디지털 시계는 23시 59분부터 1분이 지나면 0시가 됩니다.
)

I/O 예시



내 솔루션

BufferedReader와 StringTokenizer를 사용하여 현재 시간(H:M)과 조리 시간(time)을 정수로 입력하여 저장한다.
M + 시간이 60 미만이면 M에 시간을 추가합니다.
그렇지 않으면 hTime을 0으로 선언합니다.
루프를 사용하여 요리에 필요한 시간을 hTime 시간 시간 분으로 바꿉니다.
시간 환산 후 M+시간이 60보다 큰지 비교한다.
분 계산이 끝나면 조건에 따라 H를 계산하여 알맞게 출력한다.

암호

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

public class Main {
   
   public static void main(String() args) throws IOException {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
      
      StringTokenizer st = new StringTokenizer(br.readLine());
      
      int H = Integer.parseInt( st.nextToken() );
      int M = Integer.parseInt( st.nextToken() );
      int time = Integer.parseInt( br.readLine() );

      if( M + time < 60) {
    	  M += time;
      } else {
          int hTime = 0;
    	  while ( time >= 60) {
    		  hTime += 1;
    		  time -= 60;
    	  }
    	  
    	  if( M + time >= 60) {
    		  M += time - 60;
    		  H += 1;
    	  } else {
    		  M += time;
    	  }
    	  
    	  if ( H + hTime > 23 ) {
    		  H += hTime - 24;
    	  } else {
    		  H += hTime;
    	  } 
      }
      
      bw.write(H + " " + M + "\n");
      
      bw.flush();
      bw.close();
      br.close();
   }   
}