본문 바로가기
Problem Solving/백준

[백준|자바] 2884: 알람시계 (if문 활용)

by 청량리 물냉면 2020. 11. 9.
반응형
문제

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

 

2884번: 알람 시계

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

www.acmicpc.net

 

 

실행화면

 

 

 

코드
import java.util.Scanner;
public class Test {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int h = sc.nextInt(); //'시'를 입력받는 변수
		int m = sc.nextInt(); //'분'을 입력받는 변수
		
		if (m>=45) {  
			System.out.print(h+" "+(m-45));
               //만약 '분'이 45분보다 작거나 같다면 '시'를 그냥 입력해주고 
               //'분'에서 45를 빼서 출력해 준다.
		} else {
			System.out.println((h-1)+" "+(m+(60-45)));
               //만약 '분'이 45분보다 크다면 한 시간을 빼고 
               //60분에서 45분을 빼서 m에 더한 뒤 출력해 준다.
		}

	}

}

 

 

코드 설명

간단한 사칙연산 같은 문제였다.

입력받은 시간보다 45분 빠른 시간을 출력해주는 문제인데,

만약 '분'이 45분보다 작거나 같다면 '시'를 그냥 입력해주고 '분'에서 45를 빼서 출력해 준다.

만약 '분'이 45분보다 크다면 한 시간을 빼고 60분에서 45분을 빼서 m에 더한 뒤 출력해 준다.

(아래 첨부 이미지 참조)

더보기

마무리(개인 기록용)

 

문제 조건 중에 (0 ≤ H ≤ 23, 0 ≤ M ≤ 59)라는 조건이 있었는데 이를 따로 설정하는 문장은 넣지 않았다. 사용자가 23을 초과하는 H값을 입력하거나 59를 초과하는 M값을 입력해도 프로그램은 작동할 것이다.

이 부분은 프로그램 상으로 제어할 수도 있겠지만 이 문제에서는 딱히 지정해주지 않았다.

문제를 풀 때마다 항상 이런 세부적인 사항에 많은 고민을 하게 된다.

어디까지 코드를 짜주어야 하는지 뭐 이런 것들...

차차 구별하면서 필요한 코드만 짜는 실력이 길러지겠지...?

그래도 문제 하나 풀어서 기분 좋다.ㅎㅎㅎ

 

반응형