백준 2869번 달팽이는 올라가고 싶다, Node.js

cptkuk91·2023년 2월 15일
1

Algorithm

목록 보기
136/161

문제

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

ex) input = "2 1 5" result = 4

코드

const input = require("fs").readFileSync("/dev/stdin", "utf-8").trim();

const [distance, decrease, goal] = input.split(" ").map(Number);

console.log(Math.ceil((goal - decrease) / (distance - decrease)));

풀이

달팽이는 낮에 distance 거리 2만큼 갈 수 있고, 밤에 decrease 1만큼 내려간다. goal 지점인 5까지 가기 위한 공식은 Math.ceil((goal - decrease) / (distance - decrease)); 공식을 활용해 구할 수 있다. Math.ceil을 사용해야만 하는 이유는 결과값이 같지 않은 이상 하루가 더 필요하다. 예를들어 input 값을 "5 1 6" 줬을 때, result는 2다. Math.ceil 없이 진행하면 (6-1) / (5-1) = 5/4라는 값을 얻는다. goal 6까지 가기 위해서는 5/4일이 아니라, 2일이 필요하다. 따라서 Math.ceil을 사용할 경우 올림으로 인해 2를 반환하고 원하는 결과를 얻을 수 있다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글