내가 쓴 코드.
24시 이상부터 어떻게 해야할지 고민했다.
package com.sparta.algorithm.algorithm;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String hourMinute = sc.nextLine();
int ovenTime = sc.nextInt();
int standard = 60;
//시간과 분을 분리한다.
String[] divide = hourMinute.split(" ");
int hour = Integer.parseInt(divide[0]);
int minute = Integer.parseInt(divide[1]);
// 분리한 분 단위와 ovenTime의 합이 standard보다 크면
if(ovenTime + minute > standard) {
// 분리한 분 단위와 ovenTime의 합에 standard을 나누어 몫을 분리한 시간에 더하고
hour = hour + ((ovenTime + minute) / standard);
//이 때 hour가 24시 이상이 되면 시간을 0으로 바꿔 몫을 더하고
if (hour >= 24) {
hour = 0;
hour = (ovenTime + minute) / standard;
if(hour >= 1) hour = hour - 1 ;
//나머지 분을 더한다.
minute = (ovenTime + minute) % standard;
}
//그렇지 않으면 hour에 몫을 시간에 더하고 나머지를 분에 더한다.
else {
minute = (ovenTime + minute) % standard;
}
}
// hour보다 크지 않으면
//분리한 분에 ovenTime을 더한다.
else {
minute = minute +ovenTime;
}
System.out.println(hour + " " + minute);
}
}
매우 지저분하다..
수도코드 작성한다고 더 지저분해짐^^;
결국 구글링 후 변환된 코드
import java.util.Scanner;
public class B2525 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt(); // 시
int B = sc.nextInt(); // 분
int C = sc.nextInt(); // 요리하는데 필요한 시간(분 단위)
sc.close();
int total = 60 * A + B + C; // 총 시간을 분으로 바꾸기
// 24시간 넘어가면 0시간 0분으로 리셋하기. 24시간은 1440분
if (total >= 1440) {
total -= 1440;
A = total / 60;
B = total % 60;
System.out.println(A + " " + B);
} else {
A = total / 60;
B = total % 60;
System.out.println(A + " " + B);
}
}
}