본문 바로가기

[BOJ] - JAVA

[백준] 1712 : 손익분기점 JAVA 풀이

처음 문제를 봤을 때는 판매량을 N이라고 했을 때

N*C가 A+(B*N)보다 커질 때까지 N을 하나씩 증가시켜나가면 될 것 같은데,

반복문을 언제 중단해야 할지를 모르겠다는 심정이었다.

 

여기저기 찾아보고 고민해보니, A는 고정된 값이라 B와 C가 정답을 찾는 키였다.

손익분기점이 발생하지 않는 경우는 C=B일 때, C-B<0일 때라 C-B<=0인 경우에는 -1을 출력했다.

그렇지 않은 경우에는

C*N > A+(B*N)

N*(C-B) > A

N > A / (C-B) 을 만족할 때가 손익분기점이므로, 

(A / (C-B)) +1을 출력했다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
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) System.out.print(-1);
        else System.out.print((A/(C-B))+1);
        
    }
}