백준 - 1712번(손익분기점)

최지홍·2022년 2월 5일
0

백준

목록 보기
23/145

문제 출처: https://www.acmicpc.net/problem/1712


문제

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

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

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

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


import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int A = scanner.nextInt();
        int B = scanner.nextInt();
        int C = scanner.nextInt();
        double result = 0;
        if (C > B) {
            result = 1.0 * A / (C - B);
        }

        if (result > 0) {
            System.out.println((int) result + 1);
        } else {
            System.out.println(-1);
        }
    }

}

  • 이제 수학 파트로 넘어왔다. 개인적으로 많은 두려움을 가진 영역이다.
  • 그래서일까, 브론즈 4에 해당하는 문제인데도 3번이나 틀렸다.
  • 주요 문제는 가변비용과 제품가격이 같아버려 0으로 나눠지는 경우의 처리이다. 이 경우에는 이익이 발생할 수가 없는 구조이다.
  • 또한, result 처리에서 처음에는 int로 계산하여 정확하게 0이든, 0.0이든 처리가 같아 모두 -1이 나오게 되었다. 그러나 소숫점대로 나오면 1대를 팔면 이득이 되는 경우이므로, result를 double로 바꿔 계산하여 이 문제를 해결하였다.
profile
백엔드 개발자가 되자!

0개의 댓글