본문 바로가기
코딩테스트 뿌수기

[백준 2884번 node.js] 알람 시계

by hans-j 2024. 6. 9.

 

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

 

원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 프로그램을 작성

 

 

해결과정

 

1. 주어진 문자열 분리

const covertedInput =  input.split(' ');

 

2. Date생성자 적용

const convertedInput = new Date(2021, 0, 1, covertedInput[0], covertedInput[1]);

 

3. timestamp 생성 후 계산

    const offset = 45 * 60 * 1000;
    const caculatedTimeStamp = givenDate - offset;

4. Date 형태로 포맷

    const newDate = new Date(caculatedTimeStamp);

 

5. 완성

function alarmSetter(input){
    const covertedInput =  input.split(' ');
    const convertedInput = new Date(2021, 0, 1, covertedInput[0], covertedInput[1]);
    const givenDate = convertedInput.getTime();
    const offset = 45 * 60 * 1000;
    const caculatedTimeStamp = givenDate - offset;
    const newDate = new Date(caculatedTimeStamp);
    return `${newDate.getHours()} ${newDate.getMinutes()}`;
}

console.log(alarmSetter(input));

 

6. 제출 

const fs = require('fs');
const filePath = process.platform === "linux" ? '/dev/stdin' : __dirname + '/input.txt';
const input = fs.readFileSync(filePath).toString();

function alarmSetter(input){
    const covertedInput =  input.split(' ');
    const convertedInput = new Date(2021, 0, 1, covertedInput[0], covertedInput[1]);
    const givenDate = convertedInput.getTime();
    const offset = 45 * 60 * 1000;
    const caculatedTimeStamp = givenDate - offset;
    const newDate = new Date(caculatedTimeStamp);
    return `${newDate.getHours()} ${newDate.getMinutes()}`;
}

console.log(alarmSetter(input));

 

시간 관련 문제를 풀 때는

Time Stamp를 이용하는게 좋다!!!!