본문 바로가기
코테/코테withJS

백준 Node.js(자바스크립트) 2869번 달팽이올라가는 문제

by 트레일헤드레인저 2021. 8. 29.
SMALL

문제는 그렇게 어렵지않으나 단순하게 for,while을 사용하면 시간초과

//이 방식은 시간초과
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().split(' ');

const A = +input[0];
const B = +input[1];
const V = +input[2];


solution();

function solution() {
  let climb = 0;
  let i = 0;
  while(climb < V) {
    i++;
    climb += A;
    if(climb >= V) {
      console.log(i)
      break;
    } else {
        climb -= B;
    }
  }
}

문제를 이해하고 시간을 줄여야한다.

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

const A = +input[0];
const B = +input[1];
const V = +input[2];

solution();
 
function solution() {
    console.log(Math.ceil((V - B) / (A - B)));
}
LIST