DEV/Algorithm

[백준알고리즘] 2884번 : 알람 시계

veee2 2022. 4. 28. 10:46
package test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int hour = Integer.parseInt(br.readLine());
		int min = Integer.parseInt(br.readLine());
		
		if(hour < 0 || hour >= 24){
			do{
				hour = Integer.parseInt(br.readLine());
			}while(hour >= 0 || hour < 24);
		}
		
		if(min < 0 || min > 60){
			do{
				min = Integer.parseInt(br.readLine());
			}while(min >= 0 || min < 60);
		}
		
		min -= 45;
		
		if(min < 0){
			min += 60;
			--hour;
		}
		
		if(hour < 0){
			hour += 24;
		}
		
		br.close();
		
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		bw.write(hour);
		bw.write(min);
		
		bw.flush();
		bw.close();
	}
}

 

제가 작성한 코드입니다.

정답 제출을 하니 런타임 오류가 발생합니다. 

아직 그 이유를 찾지 못했는데 그 이유를 아시는 분 답변 부탁드립니다.

 

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

 

2884번: 알람 시계

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

www.acmicpc.net

 

일단, 해당 문제는 아래 코드로 통과하였습니다만 위에 문제는 아직 해결이 안됬습니다 ㅠㅠ..

import java.util.Scanner;

public class Main
{
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		int hour = sc.nextInt();
		int min = sc.nextInt();
		
		min -= 45;
		
		if(min < 0){
			min += 60;
			--hour;
		}
		
		if(hour < 0){
			hour += 24;
		}
		
		System.out.println(hour);
		System.out.println(min);
	}
}