[백준/BOJ] 2869번 달팽이는 올라가고 싶다 (Node js/javascript)
2023. 8. 27. 16:41ㆍ코딩 테스트 (BOJ)
2869번: 달팽이는 올라가고 싶다 (acmicpc.net)
문제해석
먼저 문제의 입력값과 제한시간을 보면 단순히 반복문을 통해 날짜를 세는 방식은 불가하다는 것을 예상할 수 있다.
이제 문제를 보기좋게 그려(?)보자
Day - 1 2 3 4
낮 | 밤 - 낮 | 밤 - 낮 | 밤 - 낮
이동거리 - 2 -1 3 -2 4 -3 5
(A) (B) (A) (B) (A) (B) (A)
첫째날은 A만큼 올라가고
둘째날 이후 부터는 하루에 (A-B)만큼 올라감
규칙에서 벗어난 첫째날은 하루를 소모했다고 치고 총 올라야할 높이에서도 A만큼 빼준다.
이후로는 올라야할 높이(V)를 하루에 달팽이가 올라가는 높이(A - B)로 나눠주면 며칠이 소요되는지 나오니 간단하다.
그리고 나눠서 떨어지지 않은 소수점부분 또한 마지막 날의 소요시간이니 나눠준 값은 올림하여 계산해주면 되겠다.
전체코드
const fs = require("fs");
const input = fs.readFileSync("../input.txt").toString().trim().split(" ");
var A = Number(input[0]);
var B = Number(input[1]);
var V = Number(input[2]) - A;
var clm = A-B; / 달팽이가 하루에 올라가는 높이
var day = Math.ceil(V / clm) + 1; //ceil == 소수점 올림
console.log(day);
끝
'코딩 테스트 (BOJ)' 카테고리의 다른 글
[백준/BOJ] 11653번 소인수분해 (Javascript / Node js) (0) | 2023.08.30 |
---|---|
[백준/BOJ] 1978번 소수 찾기 (Javascript/Node js) (0) | 2023.08.29 |
[백준/BOJ] 9506번 약수들의 합 [javascript/Node js] (0) | 2023.08.28 |
[백준/BOJ] 1193번 분수찾기(Node js/javascript) (0) | 2023.08.26 |
[백준/BOJ] 2292번 벌집(Node js/javascript) (0) | 2023.08.25 |