시간 제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
0.35 초 | 128 MB | 23999 | 5746 | 5123 | 25.579% |
문제
월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다.
예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다.
노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다.
A, B, C가 주어졌을 때, 손익분기점을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 21억 이하의 자연수이다.
출력
첫 번째 줄에 손익분기점 즉 최초로 이익이 발생하는 판매량을 출력한다. 손익분기점이 존재하지 않으면 -1을 출력한다.
풀이
이 문제도 반복문을 이용한다면 어렵지 않게 해결할 수 있지만, 시간제한이 0.35초이기 때문에 조금 더 간단하게 만들기 위해 노력해야 하는 문제이다. 앞서 소개한 달팽이 문제와 비슷한 문제인데, 결과를 도출하기 위해 반복문을 사용하지 않고 구하는 법을 생각해 보도록하자. 우선 변하지 않는 A값과 가변적인 B, 그리고 B와는 반대로 가변하는 C가 있다.
만약에 C가 B보다 작다면 계속해서 적자가 나므로 손익분기점은 오지 않게 되므로 -1을 도출하도록 한다. 제품 한 개당 B를 지출하고 C의 수입을 얻기 때문에 A에서 (C-B)를 나눠준디 +1을 해준다면 손익분기점이 될 것이다. 이렇게 계산한다면 루프문을 사용하지 않고도 시간제한에 맞게 풀 수 있다.ㅇㅅㅇ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class Main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
long a= sc.nextInt();
long b= sc.nextInt();
long c= sc.nextInt();
long result=0;
if(c-b<=0) {
result=-1;
}else {
result=(a/(c-b))+1;
}
System.out.println(result);
}
}
|
https://www.acmicpc.net/problem/1712
'Algorithms > BOJ[Java]' 카테고리의 다른 글
[백준/2751번] 수 정렬하기 2 [Java] (0) | 2019.12.01 |
---|---|
[백준/1152번] 단어의 개수 [Java] (0) | 2019.12.01 |
[백준/2869번] 달팽이는 올라가고 싶다 [Java] (2) | 2019.12.01 |
[백준/1157번] 단어 공부 [Java] (0) | 2019.12.01 |
[백준/2675번] 문자열 반복 ( 2011 Greater New York Programming Contest A번)[Java] (0) | 2019.11.30 |