반응형
백준 2884번 알람시계
레벨: 브론즈 3
언어: JavaScript
문제설명
상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다.
상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다.
이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다.
바로 "45분 일찍 알람 설정하기"이다.
이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 알람 소리를 들으면, 알람을 끄고 조금 더 잘 것이기 때문이다. 이 방법을 사용하면, 매일 아침 더 잤다는 기분을 느낄 수 있고, 학교도 지각하지 않게 된다.
현재 상근이가 설정한 알람 시각이 주어졌을 때, 창영이의 방법을 사용한다면, 이를 언제로 고쳐야 하는지 구하는 프로그램을 작성하시오.
📋풀이 코드
const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split(" ");
let hour = +input[0];
let min = +input[1];
solution(hour, min);
function solution(hour, min) {
const dayByTime = 24 * 60;
const alarm = hour * 60 + min - 45;
let alarmHour;
let alarmMin;
if (alarm > 0) {
alarmHour = parseInt(alarm / 60);
alarmMin = alarm - alarmHour * 60;
} else {
alarmHour = parseInt((dayByTime + alarm) / 60);
alarmMin = dayByTime + alarm - alarmHour * 60;
}
console.log(alarmHour === 24 ? "0" : alarmHour, alarmMin);
}
다시 풀어보기
const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split(" ");
let hour = +input[0];
let min = +input[1];
solution(hour, min);
function solution(hour, min) {
let Hour = hour;
let minute = min - 45;
if (minute < 0) {
minute += 60;
Hour--;
if (Hour === -1) {
Hour = 23;
}
}
console.log(Hour, minute);
}
처음에 풀고 너무 어렵게 푼거 같아서 다시 풀어보았다.
45분 뺏을 때 시간이 어떻게 되는지만 생각하면 간단하게 풀어볼 수 있는 문제이다.
문제를 어렵게 생각하여 필자처럼 복잡하게 풀지 않도록 하자 ㅎㅎ
반응형
'지난 글 모음' 카테고리의 다른 글
[백준 Node.js] 1085번 직사각형에서 탈출 javascript (0) | 2022.02.07 |
---|---|
[백준 node.js] 2908번 상수 JavaScript (0) | 2022.02.07 |
[javascript] - 표현식과 문, 리터럴 (1) | 2022.02.03 |
[백준 node.js] 1010번 다리놓기 javascript (0) | 2022.02.02 |
[백준 node.js] 10870번 피보나치 수5 JavaScript (0) | 2022.02.02 |