[Baekjoon] 1717번 문제풀이 - 손익분기점
2020. 8. 11. 14:15ㆍComputer Sciences/Problem Solve
이 문제의 핵심은 2가지입니다. 첫 번째는 손익분기점을 계산하는 알고리즘, 그리고 손익분기점이 존재하지 않는다는 조건을 생각하는 것입니다.
먼저 첫 번째를 생각해봅시다. 고정비용(a)은 말 그대로 고정되어있고, 가변비용(b)은 제품을 생산할 때마다 증가합니다. 판매익(c)은 제품을 판매할 때마다 증가하구요. 그렇다면 알고리즘은 간단합니다.
a + b * i < c * i 일 때의 i값이 손익분기점이 됩니다.
수학식으로 정리하면 a/(c-b) < x 입니다.
그럼 이제 두 번째를 생각해봅시다. 손익분기점이 존재하지 않는다는 것은 무슨 뜻일까요? 바로 제품의 가격이 가변비용보다 작을 때를 말합니다. 생각해봅시다. 내가 제품을 만들 때 들어간 비용이 1000원이라고 칩시다. 그런데 이 제품의 가격을 1000원과 같거나 작게 책정하면 내가 제품을 판매하더라도 이윤이 남지를 않겠죠? 같은 원리입니다. 제품의 가격이 가변비용보다 커야 우리가 돈을 벌 수 있고, 손익분기점 또한 존재할 수 있습니다. 코드를 봅시다.
import java.util.Scanner;
public class Baekjoon1712 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int fixedCost = scanner.nextInt();
int variableCost = scanner.nextInt();
int commodityPrice = scanner.nextInt();
int breakEvenPoint = 0;
scanner.close();
if (variableCost >= commodityPrice)
breakEvenPoint = -1;
else {
int i = 1;
while (true) {
if (fixedCost / (commodityPrice - variableCost) < i) {
breakEvenPoint = i;
break;
}
i++;
}
}
System.out.println(breakEvenPoint);
}
}
'Computer Sciences > Problem Solve' 카테고리의 다른 글
[Baekjoon] 2750번: 수 정렬하기 (0) | 2021.05.30 |
---|---|
[Baekjoon] 2839번 문제풀이 - 설탕 배달 (0) | 2020.08.11 |
[Baekjoon] 1316번 문제풀이 - 그룹 체커 (0) | 2020.08.07 |
[Baekjoon] 2941번 문제풀이 - 크로아티아 알파벳 (0) | 2020.08.07 |
[Baekjoon] 5622번 문제풀이 - 다이얼 (0) | 2020.08.07 |