알고리즘

[백준/Java]Q2884

  • -
반응형

백준 알고리즘 2단계 if문 2884번 문제입니다.


Q. 45분 일찍 설정되는 알람 프로그램을 작성하시오.

[입력]
- 두 정수(H, M)

[조건]
- 첫째 줄에 두 정수 H와 M이 주어진다. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59) 그리고 이것은 현재 상근이가 설정한 놓은 알람 시간 H시 M분을 의미한다.
- 입력 시간은 24시간 표현을 사용한다. 24시간 표현에서 하루의 시작은 0:0(자정)이고, 끝은 23:59(다음날 자정 1분 전)이다. 시간을 나타낼 때, 불필요한 0은 사용하지 않는다.

 

풀이

이 문제는 2가지가 핵심이었던 것 같다.

1. 45분을 기준으로 분기처리 : 입력값이 45보다 작다면 60을 기준으로 45를 빼줘야하기 때문에 (입력값+60) - 45

2. 자정(0:0)처리 : 입력값이 45보다 작으면서 시간값이 0이라면 23으로 조정

 

소스
package com.baek.algo;

import java.util.Scanner;

public class Q2884 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int hh = sc.nextInt();
		int mm = sc.nextInt();

		int rh = 0;
		int rm = 0;

		if(mm < 45) {
			if(hh == 0) {
				rh = 23;
			} else {
				rh = hh - 1;
			}
			rm = (mm + 60) - 45;
		} else {
			rh = hh;
			rm = mm - 45;
		}

		System.out.println(rh + " " + rm);

		sc.close();
	}
}
반응형

'알고리즘' 카테고리의 다른 글

[백준/Java]Q4344  (0) 2021.07.08
[백준/Java]Q1110  (0) 2021.07.06
[백준/Java]Q10871  (0) 2021.07.06
[백준/Java]Q2588  (0) 2021.07.05
[알고리즘]재귀함수(Recursion)  (0) 2020.02.01
Contents

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.