[Javascript] 백준 3029 경고

Chaedie·2022년 6월 22일
0

Javascript - PS

목록 보기
13/24
post-custom-banner

구글검색에 Javascript 풀이가 없으면 무조건 올립니다.

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

내 풀이

//* 인풋 - 디폴트
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = fs.readFileSync(filePath).toString().split('\n');

//* 인풋 - 커스텀, 함수 콜
const curTime = input[0];
const targetTime = input[1];
console.log(sol(curTime, targetTime));

//* 로직함수
function sol(curTime, targetTime) {
  let curTimeSec = timeToSecond(curTime);
  let targetTimeSec = timeToSecond(targetTime);
  let answer = '';

  if (curTimeSec < targetTimeSec) {
    answer = secToTime(targetTimeSec - curTimeSec);
  } else {
    answer = secToTime(targetTimeSec + 86400 - curTimeSec);
  }
  return answer;
}

function timeToSecond(time) {
  let hh = parseInt(time.slice(0, 2));
  let mm = parseInt(time.slice(3, 5));
  let ss = parseInt(time.slice(6, 8));
  return (hh * 60 + mm) * 60 + ss;
}

function secToTime(sec) {
  let hh = Math.floor(sec / 3600) + '';
  let mm = Math.floor((sec % 3600) / 60) + '';
  let ss = Math.floor((sec % 3600) % 60) + '';

  return `${hh.padStart(2, '0')}:${mm.padStart(2, '0')}:${ss.padStart(2, '0')}`;
}

💡 더 깔끔하게 할 수 있겠지만.. 많은 문제를 접하는게 목표라 그냥 넘어갑니다.

다른 사람 풀이

많이 안 푼 문제, 마음에 쏙 드는 풀이가 없어 넘어갑니다.

배운 점, 느낀 점

문제를 끝까지 제대로 안 읽고 풀어서 "<=" 과 "<"의 차이 하나로 2번이나 "틀렸습니다."를 받았습니다. 문제를 끝까지 읽고 요구사항을 제대로 파악하는 연습을 해야겠습니다.

문제를 받아들었을 때, 요구 사항이 뭔지, 제한 조건이 무엇인지 먼저 적는 연습을 하면 좋을것 같습니다.

profile
TIL Blog - Today's Intensive Learning!
post-custom-banner

0개의 댓글