[백준] 2525번 오븐시계 - javascript

Chanyoung Lee·2022년 4월 28일
0

백준

목록 보기
6/6

문제

오븐시계 문제 바로보기

현재 시각('시 분')과 요리하는데 걸리는 시간('분')이 주어졌을 때 요리 완료 시간을 return 하면 된다.

고민

처음에는 분 -> 시간 -> 24시 초과 여부에 따른 조치 순으로 계산하려 했으나, 주어진 시각을 분으로 변환하여 계산하는게 편할 것 같았다.

  1. 주어진 시각을 분으로 변환(currentMin)하여 걸리는 시간을 더해 총 min(finishMin)을 구한다.
  2. 총 min이 하루(1440분)를 넘어갈 경우 조정한다.
    *예제에는 요리하는데 걸리는 시간이 1000분 이하라고 나와있으나 while문으로 그 이상일 때도 적용하게끔 함
  3. 시와 분을 계산하여 출력한다.

해결

const fs = require('fs');
const path = require('path');
const filePath = process.platform === 'linux' ? '/dev/stdin' : path.join(__dirname, '/example.txt');
const input = fs.readFileSync(filePath).toString().split('\n');

const currentTime = input[0].split(' ');
const currentMin = (+currentTime[0])*60 + (+currentTime[1]);

let finishMin = currentMin + (+input[1]);

while (finishMin >= 1440) {
  finishMin -= 1440;
}

console.log(`${parseInt(finishMin/60)} ${finishMin%60}`);

다른이풀이

const fs = require("fs");
let input = fs.readFileSync("./dev/stdin").toString().split("\n");
const now = input[0].split(" ").map((item) => +item);

const needTime = +input[1];

function solution(now, needTime) {
  let time = [now[0], now[1] + needTime];
  if (time[1] >= 60) {
    time[0] += Math.floor(time[1] / 60);
    time[0] %= 24;
    time[1] %= 60;
  }
  console.log(time.join(" "));
}

solution(now, needTime);
profile
함께 일하는 가치를 아는 사람

0개의 댓글