© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 1712 - 손익분기점

2023-06-03
BOJ
브론즈 II
java
원본 문제 보기
수학
사칙연산

문제

BOJ 1712 - 손익분기점

고정 비용 A, 가변 비용 B(개당), 판매 가격 C(개당)가 주어질 때, 이익이 발생하기 시작하는 최소 판매 개수를 구하라.

입력

첫째 줄에 A, B, C가 주어진다.

출력

손익분기점(이익이 발생하는 최소 판매 개수)을 출력한다. 이익을 낼 수 없으면 -1을 출력한다.

예제

입력출력
1000 70 17011

풀이

판매 가격이 가변 비용보다 클 때, A/(C-B)+1이 손익분기점이다.

  1. C가 B 이하이면 이익을 낼 수 없으므로 -1을 출력한다
  2. 그렇지 않으면 A/(C-B)+1을 출력한다 (정수 나눗셈의 몫에 1을 더함)

핵심 아이디어: 총 이익 = N*C - (A + N*B)이므로 N*(C-B) > A, 즉 N > A/(C-B)일 때 이익이 발생한다.

코드

package day499;
 
import java.io.*;
import java.util.*;
 
public class Day482BOJ1712손익분기점 {
  public static void main(String[] args) throws Exception {
    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) {
      System.out.println("-1");
    } else {
      System.out.println((A / (C - B)) + 1);
    }
  }
}

복잡도

  • 시간: O(1)
  • 공간: O(1)