백준 2869번 Node.js 문제풀이

Cho Dragoo·2021년 5월 30일
0
post-thumbnail

JavaScript 백준 온라인 알고리즘 공부

백준 2869 번 Node.js 문제풀이

달팽이는 올라가고 싶다
https://www.acmicpc.net/problem/2869



본인이 제출한 답안

const fs = require("fs");
const input = (
  process.platform === "linux"
    ? fs.readFileSync("/dev/stdin").toString()
    : `100 99 1000000000`
)
  .trim()
  .split(" ");

let up = Number(input[0]);
let down = Number(input[1]);
let totalMeter = Number(input[2]);
let days = 0;

days = Math.ceil((totalMeter - down) / (up - down));

console.log(days);


풀이과정 소감

  • 이전의 손익분기점 문제와 유사하다. 최소 구현시간이 0.2초도 안되는 엄격한 시간, 예제에서 힌트를 찾을 수 있는 구성이라든지.... 여러부분에서 유사한 덕분에 익숙해져 예전과는 달리 연산작업에 정신적 고통은 없었다.

  • 얼핏보면 목표지점인 totalMeter에 달팽이가 오르고 내려간 하루 총 이동거리값으로 나누면 도착날짜가 나올거라 추측하게 된다. 하지만 더 정답에 다다를려면 내려간거리를 목표지점에 빼버려야 한다는 것이다. 계속 곱하는 도중에 목표길이에 거진 도달하면 달팽이가 올라가기만해도 성공하므로 (totalMeter - down) 이란 로직도 필요해지는 것이다. 그리고 days의 값을 반환하기위해 Math.ceil()소수올림처리하면 정답을 구할 수가 있다.

profile
어떤 문제든 파악 할 수 있으며 해결책을 찾을 수 있는 개발능력을 꿈꾸고 있습니다.

0개의 댓글