출처
문제
기본수학1_1712_손익분기점
월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다.
예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다.
노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다.
A, B, C가 주어졌을 때, 손익분기점을 구하는 프로그램을 작성하시오.
풀이
- 고정비용/(책정금액-가정비용) = 손익분기점으로 손익분기점 +1을 해주어 결과를 출력한다.
- 가변비용이 책정금액보다 높을경우 손익분기점은 없기때문에 -1을 출력한다.
코드
사용 메서드
- Math.floor()
- 고정비용/(책정금액-가정비용) = 손익분기점
시도 1...
let 가변비용 = +input[1];
let 책정금액 = +input[2];
let sum = 0;
let 책정금액sum = 0
let answer = 0
let n = 1;
do{
const 고정비용 = +input[0];
n++
sum = 고정비용+(가변비용*n)
책정금액sum = 책정금액*n
}
while(sum != 책정금액sum){
answer = n+1
console.log(answer>2100000001? -1 : answer);
}
시도 1.. 1차원적으로 n++해서 조건식으로 sum != 책정금액sum 21억보다 크면 -1 아니면 answer 를 출할려했지만 시간초과로 실패무식.. 술술 코드가 써지나했더니 역시나 ... 그래서 고민한결과 답을 도출하지못해서 다른 블로그를 참고하여 다시 작성했습니다.
정답
const fs = require('fs');
let input = fs.readFileSync('BaekJoon/기본수학 1/손익분기점/input.txt').toString().split(' ')
const 고정비용 = +input[0];
let 가변비용 = +input[1];
let 책정금액 = +input[2];
// 고정비용/(책정금액-가정비용) +1
// 가변비용>= 책정금액 손익분기점 없음
if(가변비용>=책정금액){
console.log(-1);
}else{
const answer = Math.floor(고정비용/(책정금액-가변비용)) +1;
console.log(answer);
}
고정비용/(책정금액-가변비용) 공식으로 쉽게 손익분기점을 구할 수 있었다..
'algorithm문제 풀이 > 백준' 카테고리의 다른 글
[JS] 백준 4674번 셀프넘버 (0) | 2022.10.02 |
---|---|
[JS] 백준 4344번 평균은 넘겠지 (0) | 2022.09.27 |