문제 풀이

[백준] 2884번: 알람 시계 - JAVA (자바)

auyeol 2023. 1. 16. 17:10
728x90

 

문제

 

https://www.acmicpc.net/problem/2884

 

2884번: 알람 시계

상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,

www.acmicpc.net

 

조금만 더 자려는 마음 때문에 학교를 지각하고 있어서 설정한 알람시간보다 45분 일찍 알람 설정하게 하는 문제이다.

 

약속이 있거나 일이 있을 때는 10분 이내에 바로바로 일어나서 지각할 일이 없었지만 방학이라 그런지 일이 없는 경우 

 

알람을 끄고 좀만 더 자려 하다가 늦게 일어나는 경우가 많아서 공감되는 것 같다.

 

시간과 분을 입력받은 뒤, 그 시간에서 45분을 뺀 시간이 출력되면 정답이다.

 

 

 

풀이

 

if  (45분 미만인 경우)

     (1) 현재 시에서 -1을 한다.            

     

     (2) 현재 분에서 45분을 뺐을 때 -가 나오지 않게 설정해야 한다.           

                →  20분인 경우 35분, 30분인 경우 45분 ....  → minute + 15

     

     (3) 24시간 표현을 사용하기 때문에 0시인 경우 23이 출력되어야 한다.

 

else  

     현재 분에서 - 45를 한다. 

   

 

 

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int hour = sc.nextInt();
		int minute = sc.nextInt(); 
		
		if(minute<45)		// 45분 미만인 경우
		{
			hour = hour - 1;	// (1) 현재 시에서 -1
			minute = minute + 15;     // (2) 분 계산
			
			if(hour<0) hour = 23;		// (3) 0시인 경우 23 출력되게 설정 
			
		}else 
			minute = minute - 45;
		
		
		
		System.out.println(hour+" "+minute);
		
		
		sc.close();
	}
}

   

728x90