Algorithm/Baekjoon

[Baekjoon] 백준 2884 알람시계 - java

담크 2021. 7. 2. 23:59

오늘은 if문에서 가장 마지막 문제인 알람시계 문제를 정리해보려 합니다.

문제는

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

 

2884번: 알람 시계

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

www.acmicpc.net

여기서 확인하시면 됩니다.

 


문제풀이

import java.util.*;

public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int H = sc.nextInt();	
		int M = sc.nextInt();
		if((M - 45) < 0) {
			if((H -1) < 0) {
				H = - 1 + 24;
				M = M - 45 + 60;
			} else {
				H -= 1;
				M = M - 45 + 60;
			}
			
		} else {
			M = M - 45;
		}
		
		System.out.print(H + " " + M);
	}
}

 

사실 이번 문제의 핵심이라고 하면 시간을 계산하는 문제이기 때문에 1~60이 넘어가면 다시 1부터 시작해주도록 코딩해야 한다는 것입니다. 반대로는 1에서 10을 빼면 50이 나오도록 코딩해 주어야 합니다.

그래서 여기서는 if문안에 if문을 써서 분에서 45분을 뺀 시간이 음수일 경우 양수일 경우를 나누어서 코딩하고 음수일 경우는 마찬가지로 시간에서 1이 빠질 때 음수일 경우 양수일 경우를 나누어서 코딩해주면 됩니다.