[백준] 2884번 알람 시계

[백준] 2884번 알람 시계

문제

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

입력

첫째 줄에 두 정수 H와 M이 주어진다. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59) 그리고 이것은 현재 상근이가 설정한 놓은 알람 시간 H시 M분을 의미한다.

입력 시간은 24시간 표현을 사용한다. 24시간 표현에서 하루의 시작은 0:0(자정)이고, 끝은 23:59(다음날 자정 1분 전)이다. 시간을 나타낼 때, 불필요한 0은 사용하지 않는다.

출력

첫째 줄에 상근이가 창영이의 방법을 사용할 때, 설정해야 하는 알람 시간을 출력한다. (입력과 같은 형태로 출력하면 된다.)

풀이

알고리즘

M이 45분 보다 작을 때,

H에서 -1을 해주고, 60분에서 45분-M만큼 빼준다.

H가 0보다 작으면 시를 23으로 바꿔준다

M이 45분 보다 클 때,

M에 45분을 뺀다.

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int H = scan.nextInt(); int M = scan.nextInt(); if (M < 45) { H--; M = 60 - (45 - M); if (H < 0) { H = 23; } System.out.println(H + " " + M); } else { System.out.println(H + " " + (M - 45)); } scan.close(); } }

from http://annajin.tistory.com/25 by ccl(A) rewrite - 2021-10-21 13:27:13