알고리즘

[백준/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(); } }
반응형
Contents

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

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