[JS] 백준 2884번 알람 시계

내 풀이

const fs = require("fs"); //파일받기위해 필요
const localFile = fs.existsSync("./input.txt"); // 내가 알고리즘 풀려는 폴더에 './input.txt'의 유무를 참,거짓으로 변수에 넣어라
const filePath = () => {
 // 참이면 내 input파일을 열고 그외는 백준의 알고리즘에서 주는 입력값을 받겠다.
 if (localFile) {
   return "./input.txt";
 }
 return "/dev/stdin";
};


var input = fs.readFileSync(filePath()).toString().split(' ') ;

let h = Number(input[0]); 
let m = Number(input[1]); 

 if (m < 45){
   let _m = 45 - m;
   let afterM = 60 - _m;
   let afterH = h - 1;
   if(h === 0){
     afterH = 24 - 1;
   }
   console.log(afterH, afterM);
 
 } else {
   let afterM = 60 - m
   let afterH = h - 1;
   if(h === 0){
     afterH = 24 - 1;
   }
   console.log(afterH, afterM);
 }

드릅게 못짜긴 했지만 node콘솔에서 모두 작동된다.. 근데 백준에서 런타임오류가 뜬다 당췌 이유를 모르겠다 하..

조건 문제인가 싶어서 유효성 검사 하고 함수선언해서 함수로 출력 해 봤는데도 틀렸댄다.. 왜지 ?? 혹시 왜 안되는지 아시는분 답글좀 달아주세요...

let input = require('fs').readFileSync('dev/stdin').toString().split(' ');

let h = Number(input[0]);  // Hour
let m = Number(input[1]);  // Minute

function alarmSet (h, m){
  if( !(h >= 0 && h <= 23 && m >= 0 && m <= 59) ) return; 
  if (m < 45){
    let _m = 45 - m;
    let afterM = 60 - _m;
    let afterH = h - 1;
    if(h === 0){
      afterH = 24 - 1;
    }
    console.log(afterH, afterM);
  
  } else {
    let afterM = 60 - m
    let afterH = h - 1;
    if(h === 0){
      afterH = 24 - 1;
    }
    console.log(afterH, afterM);
  }
}

alarmSet(h, m);

30분 고민하고 그냥 구글링해서 제출했다.

let input = require('fs').readFileSync('dev/stdin').toString().split(' ');

let Hour = Number(input[0]);  // Hour
let Minute = Number(input[1]);  // Minute

Minute -= 45;

if (Minute < 0) {
    Minute += 60;
    Hour--;

    if (Hour === -1) {
        Hour = 23;
    }
}

console.log(Hour + ' ' + Minute);

깔끔하다... 노력하자 미래의 나야

좋은 웹페이지 즐겨찾기