문제
문제 이해
이번 문제도 알람 시계 문제와 비슷한 문제다. (비슷한 문제인줄 알았다..ㅎ)
- - 첫 번째 줄에는 현재 시와 분을 공백으로 구분해 입력.
- - 두 번째 줄에는 요리에 필요한 시간 입력.
알고리즘
1. 현재 시간의 '분' + '요리 시간' 이 59 이하이면, '분 + 요리 시간' 만 적용해 출력.
2. else 분 = ('분' + '요리 시간' ) - 60, '시' +1 을 해주면 될 것이다
만약 '시' + 1 > 23 이 된다면, 시를 0으로 바꿔줘야 함!
여기에서 내가 놓친 부분이 있다.
만약 (분 + 요리 시간)이 120이 된다면?? 위에 알고리즘에 적용시켜보면 엉망이 되는 것을 알 수 있다.
무조건 '시' +1 을 해주는 것도 틀림! ('분' + '요리 시간' ) - 60을 해주는 것도 틀림!! 다 틀림!!! 내가 너무 단순하게만 생각했다부다...
다시 생각해보면..
- - '분'+요리시간을 60으로 나눈 후 몫을 '시'에 더해주고,
- - 나머지를 '분'으로 적어줘야 할 것이다.
- 그리고 마찬가지로 최종 H가 23보다 크게 되지 않도록 해야 함!!
- 만약 22 + 3이 되면..? 1이 출력되도록!
- 그럼 (22+3) - 24 를 해주면 됨 ㅎㅎ 쏘 간단
예를 들면
분 + 요리시간이 130일 경우
입력 시간에 + 2 를 해주고, 분은 10이 되는 것이다.
코드
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int H = in.nextInt();
int M = in.nextInt();
int C = in.nextInt();
in.close();
if(M+C >= 60){
M = (M+C)%60;
if(H+(M+C)/60 > 23) {
H = (H+(M+C)/60) - 24;
} else {
H = H+(M+C)/60;
}
System.out.println(H + " " + M);
} else {
System.out.println(H + " " + M+C);
}
}
}
왜 자꾸 틀리는 겨,,,, 모르게따,, 어디가 잘못된걸까ㅠ
반응형
'백준 문제 풀이 > 조건문' 카테고리의 다른 글
(#2480 Java) 주사위 세 개 (0) | 2023.07.26 |
---|---|
(#2884 Java) 알람 시계 (0) | 2023.07.26 |