알고리즘/백준

[백준] 2884번 : 알람 시계 (java)

희구 2021. 8. 24. 22:44

문제

 

코드

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int h = scan.nextInt();
		int m = scan.nextInt();
		
		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));
		}
	}
}

 

풀이

어려웠다. 구글링해보니 짬빠 쫌 있는 사람들은 간단한 문제라고 하더라

하긴.. 아주 위에 있었으니까~!

이건 m(분)을 기준으로

 

m(분)이 45보다 작으면 h(시)에서 -1을 해준다.

그리고 45에서 m(분)을 뺀 값을 60에서 빼준다. (1시간은 60분이니까)

그리고 h(시)가 0보다 작으면 h(시)는 23이다.

왜? h에서 -1을 했을 때 0보다 작은 수가 나오는 경우는 0에서 뺐을 때 뿐이니까

0시는 밤 12시고 거기서 1시간을 빼면 23시이다.

 

이 조건이 아닌 경우에는 그냥 m(분)에서 45을 빼준다.

 

 

 


 

 

 

 

아니..이걸 보고 어떻게 해야지 이런 생각이 어떻게 바로바로 드는 걸까..?

정말 개발하는 사람들은 대단하다

요새 진짜 뼈져리게 느끼고 있다.. 똑똑한 사람들 ㅠㅠ