문제 : https://www.acmicpc.net/problem/1712
[1712번: 손익분기점
월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와
www.acmicpc.net](https://www.acmicpc.net/problem/1712)
Sol )
- 회계에서 이야기하는 손익분기점과는 다름 (최초의 이익 발생 시점의 판매량)
- ( 수입 - 변동비 ) * 판매량 > 고정비 가 되는 시점의 판매량
- 단 수입 <= 변동비 라면 절대로 고정비를 넘을 수 없기 때문에 -1 출력
- 주의사항 : 내림 연산에서 Math.floor을 사용하지 않고 parseInt를 사용할 경우 반례가 발생
- 이유 : Math.floor은 수학에서의 내림 연산, parseInt는 소수부분을 잘라주는 연산
- 음수의 경우 ( ex : -12.34 ) Math.floor은 -13을, parseInt는 -12를 출력
- 매우 큰 숫자의 경우 (이 문제에서는 입력 범위 21억) : 6.022 * 10^23 같은 숫자에서 Math.floor은 내림 연산을 진행하겠지만, parseInt는 6.022e23 처럼 표현된 숫자의 소수부분을 잘라내 6을 표시해준다.
- 이 문제의 경우 21억 범위까지 들어오기 때문에 지수표기법이 발생하는 경우 parseInt는 반례가 생길 수 있다.
소스코드 )
const fs = require('fs');
const [a,b,v] = fs.readFileSync('/dev/stdin').toString().split('\n')[0].split(' ').map(Number);
if (v-b <= 0) result = -1;
else result = Math.floor(a/(v-b))+1
console.log(result)
'Problem Solving > boj.kr (JS)' 카테고리의 다른 글
[BOJ / 자바스크립트] 1193 : 분수찾기 (0) | 2022.07.11 |
---|---|
[BOJ / 자바스크립트] 2292 : 벌집 (0) | 2022.03.13 |
[BOJ / 자바스크립트] 1316 : 그룹 단어 체커 (0) | 2022.02.26 |
[BOJ / 자바스크립트] 2941 : 크로아티아 알파벳 (0) | 2022.02.26 |
[BOJ / 자바스크립트] 5622 : 다이얼 (0) | 2022.02.26 |
댓글