본문 바로가기

알고리즘/🥉 브론즈

백준 2884 알람 시계 자바 풀이

728x90

난이도 : 브론즈5

풀이일 : 04123

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

 

2884번: 알람 시계

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

www.acmicpc.net


링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐


1차 시도 오답

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int h = sc.nextInt();
		int m = sc.nextInt();
		if(h==0) {
			if(m>=40)
				m -= 45;
			else {
				h = 23;
				m += 15;
			}
		}
		else if(m>=45)
			m -= 45;
		else {
			h -= 1;
			m += 15;
		}
		System.out.println(h+" "+m);
	}
}

틀린 이유

  • if문 속 if문에 조건을 45 대신 40으로 설정해서 오답

최종 정답

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int h = sc.nextInt();
		int m = sc.nextInt();
		if(h==0) {
			if(m>=45)
				m -= 45;
			else {
				h = 23;
				m += 15;
			}
		}
		else if(m>=45)
			m -= 45;
		else {
			h -= 1;
			m += 15;
		}	
		System.out.println(h+" "+m);
	}
}

느낀점

문제에서 주어진 조건을 잘 확인하고 꼼꼼하게 적자