본문 바로가기
백준

[백준] 1712번 : 손익분기점 – JAVA [자바]

by Hongwoo 2022. 7. 9.
반응형

https://www.acmicpc.net/problem/1712

 

1712번: 손익분기점

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 1712번 손익분기점은 브론즈 난이도의 2의 수학 문제이다. 이 문제에서는 자연수 A, B, C가 주어진다. A는 고정 비용, B는 가변 비용 그리고 C는 판매 비용을 뜻한다. 그리고 몇 개를 팔아야지 최초로 이익이 발생하는지를 출력하면 된다.

 

이 문제에서 나오는 것처럼 n개의 물건을 만드는데 드는 비용은 A + Bn이라고 한다. 그리고 물건을 n개를 팔 때 벌어들이는 돈은 Cn이다. 따라서 최초로 수익이 발생하기 위해서는 다음과 같이 공식을 쓸 수 있다.

 

Cn > A + Bn

 

Cn - Bn > A

 

n (C - B) > A

 

n > A / (C - B)가 성립한다.

 

문제에서 주어진 예시를 한번 보겠다.

 

EX 1) A = 100, B = 70, C = 170

n > 100 / (170 - 70)

n > 100 / 10 = n > 10이다.

따라서 최초로 이익이 발생하는 판매량은 11이다. 

 

EX 2) A = 3, B = 2, C = 1

n > 3 / (1 - 2)

n > 3 / (-1)

음수가 나오니 이익은 발생하지 않으므로 답은 -1이다.

 

EX 3) A = 2100000000, B = 9, C = 10

n > 2100000000 / (10 - 9)

n > 2100000000 / 1

n > 2100000000이므로 최초로 이익이 발생하는 판매량은 2100000001이다. 

 

자세한 코드는 밑에 있다.

 


  • 코드

 

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        int c = Integer.parseInt(st.nextToken());
        if (c - b == 0) {  //분모가 0이면 손익분기점을 구할 수 없으므로 -1 출력
            System.out.print(-1);
            return;
        }
        int x = a / (c - b);
        if (x < 0) {
            System.out.print(-1);
        } else {
            System.out.print(x + 1);
        }
    }
}

 

 

반응형

댓글