처음 문제를 봤을 때는 판매량을 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);
}
}
'[BOJ] - JAVA' 카테고리의 다른 글
[백준] 1193 : 분수찾기 JAVA 풀이 (0) | 2022.05.17 |
---|---|
[백준] 2292 : 벌집 JAVA 풀이 (0) | 2022.05.16 |
[백준] 1316 : 그룹 단어 체커 JAVA 풀이 (0) | 2022.05.16 |
[백준] 2941 : 크로아티아 알파벳 JAVA 풀이 (0) | 2022.05.15 |
[백준] 5622 : 다이얼 JAVA 풀이 (0) | 2022.05.14 |