백준 - 손익분기점 [1712]

노력하는 배짱이·2021년 3월 19일
0
post-thumbnail

문제

월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다.

예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다.

노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다.

A, B, C가 주어졌을 때, 손익분기점을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 21억 이하의 자연수이다.

출력

첫 번째 줄에 손익분기점 즉 최초로 이익이 발생하는 판매량을 출력한다. 손익분기점이 존재하지 않으면 -1을 출력한다.

풀이

문제의 예시로 하나씩 써보면 규칙을 찾을 수 있다. 문제에서 주어진 것처럼 a : 고정비용, b : 가변 비용, c : 노트북 한대 가격 이라 했을 때 아래 표와 같이 손익분기점은 11대를 팔았을 때이다.

NAB총 비용총 수입(C)
11000701070170
210001401140340
310002101210510
410002801280680
510003501350850
6100042014201020
7100049014901190
8100056015601360
9100063016301530
10100070017001700
11100077017701870

즉, NC=A+(BN)N * C = A + (B * N) 에서 + 1를 할 때가 손익분기점임을 알 수 있다. N에 관하여 식을 정리하면 N = A / (C - B) 라고 할 수 있다. C - B 는 0이 되어서는 안되고 또한 N이 음수가 나오면 안되기 때문에 C > B 라는 조건이 붙게 된다.

최종적으로 구해지는 N에 + 1 하여 출력하면 된다.

소스

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();

		if (b >= c) {
			System.out.println(-1);
		} else {
			System.out.println(a / (c - b) + 1);
		}

	}

}

0개의 댓글