https://www.acmicpc.net/problem/2525
많이도 틀렸다...ㅎ...
if(mm+time>=60) {
hh++;
mm = time - mm;
}else
mm = time + mm;
if (hh >= 24)
hh = hh-23;
System.out.println(hh+" "+mm);
}
맨 처음엔 입력한 시간에서 추가한 시간만 빼주면 될 줄 알았는데
음수가 출력됐다... 넘어가는 시간을 계산하지 못한 나의 실수....
if(mm+time>=60){
hh++;
mm = mm+time%60;
}else
mm = time + mm;
if (hh >= 24)
hh = hh-24;
System.out.println(hh+" "+mm);
그 다음엔 이렇게 수정했더니
역시나 넘어가는 값을 더해주지 못했다.
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer str = new StringTokenizer(br.readLine()," ");
int hh = Integer.parseInt(str.nextToken());
int mm = Integer.parseInt(str.nextToken());
int time = Integer.parseInt(br.readLine());
br.close();
mm = mm+time;
if(mm>=60){
int hour = mm / 60;
if(hour>0){
hh+=hour;
}
mm = mm%60;
}else
mm = time + mm;
if (hh >= 24)
hh = hh-24;
System.out.println(hh+" "+mm);
}
}
마지막 즈음엔 거의 근접하게 풀었는데
}else
mm = time + mm;
이 부분에서 오답이 났다.
결국 1시간에 걸쳐 완성한 문제....
package 백준;// @ author ninaaano
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class 오븐시계 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer str = new StringTokenizer(br.readLine()," ");
int hh = Integer.parseInt(str.nextToken());
int mm = Integer.parseInt(str.nextToken());
int time = Integer.parseInt(br.readLine());
br.close();
mm = mm+time;
if(mm>=60) {
int hour = mm / 60;
if (hour > 0) {
hh += hour;
}
mm = mm % 60;
}
if (hh >= 24)
hh = hh-24;
System.out.println(hh+" "+mm);
}
}
문제를 풀고 인터넷에서 더 간단한 방법이 있을까 해서 찾아봤는데
다들 쉬운 문제라고 한다
나만 어려웠나보다...
++ 다른 풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int C = Integer.parseInt(br.readLine());
int min = 60 * A + B; // 시 -> 분
min += C;
int hour = (min / 60) % 24;
int minute = min % 60;
System.out.println(hour + " " + minute);
}
}
이렇게 간단하게 시간을 환산해서 푸는 방법도 있었다....
나도 하다보면 저렇게 간단히 풀 수 있겠지?