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

(#2884 Java) 알람 시계

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

문제 이해

문제를 간단하게 요약하면, 상근이가 설정한 시간에서 45분 일찍 알람이 울리게 하는 것이다.

중요한 것 : 24시간 표현을 사용한다는 것. ( 불필요한 0은 사용하지 않음 )

 

알고리즘

1. 설정한 시간의 '분'이 숫자 45보다 크거나 같다면 '시'는 그대로 두고, '분 - 45'를 하면 됨.

2. 설정한 시간의 '분'이 숫자 45보다 작으면 '시 - 1'을 해준 후, '60 - ( 45 - 분 )'를 하면 됨. 

    ( 만약 '시'가 0이라면, 23으로 바꿔줘야 함 !! )

이를 코드로 표현해보자 ! !

 

코드
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();
		in.close();
		
		if(M >= 45) {
			M = M - 45;
			System.out.println(H + " " + M);
        } else {
			H--;
            M = 60 - (45-M);
            if (H < 0) {
                H = 23;
            }
            System.out.println(H + " " + M);
		}
	}
}

 

오류

계속 틀려서 왜지..? 를 반복..

1. M >= 45에서 = 를 계속 빼먹음..

2. H < 0 경우 H를 23으로 만들어주는 코드를 계속 H == 0 인 경우로 작성함.

   근데, 이 경우는 왜 안 될까? 조건에서 입력받는 게 0 <= H <= 23 이라고 나와있는데.. (다시 찾아보기..!)

반응형

'백준 문제 풀이 > 조건문' 카테고리의 다른 글

(#2480 Java) 주사위 세 개  (0) 2023.07.26
(#2525 Java) 오븐 시계 (다시 풀어야 함)  (0) 2023.07.26