본문 바로가기
백준 문제 풀이/조건문

(#2525 Java) 오븐 시계 (다시 풀어야 함)

by _비니_ 2023. 7. 26.
문제

 

문제 이해

이번 문제도 알람 시계 문제와 비슷한 문제다.  (비슷한 문제인줄 알았다..ㅎ)

  • - 첫 번째 줄에는 현재 시와 분을 공백으로 구분해 입력.
  • - 두 번째 줄에는 요리에 필요한 시간 입력.

 

알고리즘

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