오븐 시계 - javascript

9692 단어 코테백준백준

문제 (출처)

👉https://www.acmicpc.net/problem/2525

나의 접근

  • 우선 몇일간 블로그 포스팅을 못하였다.
    이유는 나의 나태함이다...(사실 코로나도 걸렸다고!! 너무해) 여튼 집에서 쉬었던건 사실이니, 다시 꾸준히 작성해야겠다.

  • 먼저 갑자기 문제 수준이 굉장히 낮아졌는데;; 사실은 너무 어려워 매번 정답만 보면서 푸는 것이 맞는 라는 생각하여
    단계별로 풀기로 하였다. 해당 방법은 라매개발자님의 채널을보고 프론트엔드 개발자 코딩테스트 준비 방법을 기초로 따라해본다.
    만약 잘안되면 다 라매개발자님 탓이다!!! 너무해!!

  • 각설하고 해당 문제는 사실 백준 node.js 입력 값을 가져오는것이 더 어렵긴했다...
    해당방법을 완벽히 마스터 하게 되면 그때 따로 포스팅을 해볼까 한다.

  • 뭐 문제는 풀기는 했는데, 사실 나는 단계에 맞게 조건문을 활용해서 문제를 해결하였는데 정답 제출 후 남들의 문제를 확인 해보니 아주 진귀한 답이 있어 그것까지 소개해보겠다.

풀이

나의 풀이

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split("\n");
 
let hour = input[0].split(" ")[0];
let min = input[0].split(" ")[1];
let time = input[1];
solution(+hour, +min, +time);

function solution(hour, min, time){
    if(min + time >= 60){
        hour = hour + parseInt((min + time) / 60)
        min = (min + time) % 60;
        if(hour >=24){
            hour = hour - 24
        }
    }else{
        min = min + time;
    }
    
    console.log(hour, min);
}

진귀한 풀이

const input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
const nowTime = input[0].split(" ");

const hr = +nowTime[0];
const min = +nowTime[1] + +input[1];
const sum = hr*60 + min;  // convert whole time into min.

console.log(Math.floor(sum/60)%24 + " " + sum%60);

오늘의 배운점 및 교훈

  • 사실 오늘의 가장 배운점은 node.js 입력값을 하는 법이다ㅋㅋㅋ
    하지만 이건 좀 더 마스터하고 포스팅하는것으로!
  • 매번 헷갈려서 찾아보는데 나누기를 할때 몫을 구할때 Math.floor()를 써야한다!
    - 시간을 구할때 모두 분으로 바꾸고 생각하면 여러가지 경우의 수를 생각안해도 된다.

좋은 웹페이지 즐겨찾기