백준 1712번 손익분기점-JS

- 구글링 후 힌트보고 품

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split(' ');
let A = Number(input[0]);
let B = Number(input[1]);
let C = Number(input[2]);
let x = 0;
let bottom = C-B;
if(bottom > 0) {
  x = A/(C-B);
  if(x >= 0) {
    console.log(Math.floor(x+1));
  } else {
    console.log(-1);
  }
} else {
  console.log(-1);
}

내가 계속 틀렸던 이유는 A/(C-B)에서 C-B가 음수가 아닐때 라는 조건을 달아주지 않아서이다. 나눗셈을 하는데 당연히 음수 조건이 있어야된다.

- 삼항연산자 이용한 다른사람 코드

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

const A = input[0] * 1;
const B = input[1] * 1;
const C = input[2] * 1;

const margin = C - B;
const count = Math.floor(A / margin) + 1

console.log(margin <= 0 ? -1 : count);

깔-끔

- 새롭게 알게된 점

  • 소수점 조정
    Math.ceil(x): 주어진 값에 소수점 올림하여 정수를 반환
    Math.floor(x): 주어진 값에 소수점 내림하여 정수를 반환
    Math.round(x): 주어진 값에 소수점 반올림하여 정수를 반환
    Number.prototype.toFixed(x): 주어진 값의 길이만큼 소수점 자리수를 반올림하여 반환

num.toFixed(3) 셋째자리까지 반올림해서 출력(n.nnn이렇게 출력)

좋은 웹페이지 즐겨찾기