반응형
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// String[] inputs = br.readLine().split(" ");
//
// int a = Integer.parseInt(inputs[0]);
//
// int b = Integer.parseInt(inputs[1]);
//
// if( a < -10000 || a > 10000 || b < -10000 || b > 10000){
// throw new Exception();
// }
//
// if( a > b ){
// System.out.println(">");
// } else if ( a < b ) {
// System.out.println("<");
// } else {
// System.out.println("==");
// }
// String score = br.readLine();
//
// int grade = Integer.parseInt(score);
//
// if(grade <= 100 && grade >= 90){
// System.out.println("A");
// } else if(grade < 90 && grade >= 80){
// System.out.println("B");
// } else if(grade < 80 && grade >= 70){
// System.out.println("C");
// } else if(grade < 70 && grade >= 60){
// System.out.println("D");
// } else if(grade < 60 && grade >= 0){
// System.out.println("F");
// } else {
// throw new Exception();
// }
// String year = br.readLine();
//
// int checkYear = Integer.parseInt(year);
// int leapYear = 1;
// if ( checkYear % 4 == 0 && checkYear % 100 != 0 ) {
// leapYear = 1;
// } else if ( checkYear % 100 == 0 && checkYear % 400 == 0 ) {
// leapYear = 1;
// } else {
// leapYear = 0;
// }
//
// System.out.println(leapYear);
// String xAxis = br.readLine();
// String yAxis = br.readLine();
//
// int x = Integer.parseInt(xAxis);
// int y = Integer.parseInt(yAxis);
//
// if ( x < -1000 || x > 1000 || x == 0 || y < -1000 || y > 1000 || y == 0 ) {
// throw new Exception();
// }
//
// if( x > 0 && y > 0 ) {
// System.out.println("1");
// } else if ( x > 0 && y < 0 ) {
// System.out.println("4");
// } else if ( x < 0 && y > 0) {
// System.out.println("2");
// } else {
// System.out.println("3");
// }
// String[] time = br.readLine().split(" ");
//
// int hour = Integer.parseInt(time[0]);
// int min = Integer.parseInt(time[1]);
//
// int aHour = 0;
// int aMin = 0;
//
// if( hour < 0 || hour > 23 || min < 0 || min > 59){
// throw new Exception();
// }
//
// if ( min < 45 ) {
// if( hour < 1 ){
// aHour = hour + 24 - 1;
// aMin = min + 60 - 45;
// } else {
// aHour = hour - 1;
// aMin = min + 60 - 45;
// }
// } else {
// aHour = hour;
// aMin = min - 45;
// }
//
// sb.append(aHour + " " + aMin);
//
// System.out.println(sb);
String[] current = br.readLine().split(" ");
String timer = br.readLine();
int hour = Integer.parseInt(current[0]);
int min = Integer.parseInt(current[1]);
int cTime = Integer.parseInt(timer);
int expireHour = 0;
int expireMin = 0;
if ( hour < 0 || hour > 23 || min < 0 || min > 59 || cTime < 0 || cTime > 1000){
throw new Exception();
}
int tMin = cTime + min;
// // 1st try
// if ( tMin < 60) {
// expireHour = hour;
// expireMin = tMin % 60;
// } else {
// if( hour + (tMin/60) > 23){
// expireHour = ((hour + (tMin/60)) / 24)-1;
// } else {
// expireHour = hour + (tMin/60);
// }
// expireMin = tMin % 60;
// }
// 2nd try
if (tMin < 60){
expireHour = hour;
expireMin = tMin;
} else {
if (tMin/60 > 1) {
if(hour + (tMin/60) > 23){
expireHour = hour + (tMin/60) - 24;
} else {
expireHour = hour + (tMin/60) ;
}
expireMin = tMin - (tMin/60)*60;
} else {
if(hour + (tMin/60) > 23){
expireHour = 0;
} else {
expireHour = hour + 1 ;
}
expireMin = tMin - (tMin/60)*60;
}
}
sb.append(expireHour + " " + expireMin);
System.out.println(sb); }
}
더보기
45분 앞서는 문제 간단히 리팩토링
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] time = br.readLine().split(" ");
int hour = Integer.parseInt(time[0]);
int min = Integer.parseInt(time[1]);
// 유효성 검증
if(hour < 0 || hour > 23 || min < 0 || min > 59) {
throw new IllegalArgumentException("Invalid time input");
}
min -= 45; // 45분 어차피 빠짐
if(min < 0) { // 시단위 조절
min += 60;
hour = (hour == 0) ? 23 : hour - 1;
}
System.out.println(hour + " " + min);
}
}
더보기
오븐시계 간단히 리팩토링
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] current = br.readLine().split(" ");
int hour = Integer.parseInt(current[0]);
int min = Integer.parseInt(current[1]);
int cTime = Integer.parseInt(br.readLine());
// 유효성 검사
if (hour < 0 || hour > 23 || min < 0 || min > 59 || cTime < 0 || cTime > 1000) {
throw new IllegalArgumentException("Invalid input");
}
int totalMinutes = hour * 60 + min + cTime; // 전체 시간을 분으로 계산
int expireHour = (totalMinutes / 60) % 24; // 24시간 형식으로 시간 계산
int expireMin = totalMinutes % 60; // 분 계산
System.out.println(expireHour + " " + expireMin);
}
}
반응형
'Backend > JAVA' 카테고리의 다른 글
[Algorithm] 데일리 백준 (0) | 2024.04.09 |
---|---|
[Algorithm] 데일리 백준 (0) | 2024.04.05 |
[Algorithm] 데일리 백준 (0) | 2024.04.03 |
[Algorithm] 데일리 백준 (2) | 2024.04.02 |
[Java] 시간 비교, 시간 파싱 (0) | 2024.03.14 |