본문 바로가기
개발 공부/백준 문제 풀기

백준 - 2884번 알람 시계 [자바]

by 코딩호야 2022. 10. 5.

문제풀이

import java.util.Scanner;

public class Bj_2884 {

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

	}
}

 

일단 시간과 분을 Scanner 로 통해서 각각 받는다.

그후 if 문 안의 조건을 45분의 시간을 떙기려는 것이기 때문에  만약 입력한 분이 45가 안되었을때를 조건으로 넣고

M < 45 라면 시간을 -1 해준다. ( H - - )     그리고  M 은  분은 60 이기때문에 60 -  ( 45 - 입력한 분값) 으로 해주면된다.

그후 예를들어  입력갑이 0 , 30 이라면  H 가 - -  되어서  H 가 - 1 로 출력될수 있기때문에 if 문안에 if 문으로 조건을 하나 더 걸어준다 .   H < 0  이라면  H = 23 으로 대입하는 조건을 넣어주면  0시와 45 분 이하의 분이 들어오더라도 문제없다.

 

나머지 else 문에는 문제 그대로 출력해주면 되기 떄문에 어려움 없이 출력이 가능하다.