728x90
반응형
https://www.acmicpc.net/problem/1712
문제 1712) 손익분기점 문제
문제)
월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 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을 출력한다.
NO | 예제 입력 | 예제 출력 |
1 | 1000 70 170 | 11 |
2 | 3 2 1 | -1 |
3 | 2100000000 9 10 | 2100000001 |
정답 코드)
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int n = 0; if( c != b ){ n = a / (c-b) + 1; } else { n = -1; } if(b > c) { System.out.println(-1); } else { System.out.println(n); } } }
1. 변수를 3개 입력 받고 출력할 변수를 하나 더 지정해줍니다.
2. 만약 c가 b랑 같지 않으면 n의 값을 위의 식과 같이 코드를 생성합니다.
→ a + bn < cn이 되어야하므로 n의 값에서 무조건 1이 더해져야 합니다.
3. b가 c보다 크면 n의 값이 나올 수 없기 때문에 -1을 출력하고 그 외에는 n을 출력하도록 합니다.
이 문제를 푸는데 며칠이 걸렸습니다. 그 이유는 시간은 0.35초 만에 출력이 되어야하는데 저는 증감식으로 밖에 풀 수 없다고 생각했기 때문입니다. 그래서 시간초과 오류가 많이 나타났습니다.
위의 방법처럼 바로 n의 값을 변수로 대입해 n+1의 값을 출력하게 하면 원하는 값을 구할 수 있습니다.
위의 코드에서도 b >= c이면 -1을 출력하도록하고 그 외에는 n 값을 출력하도록 만들면 코드가 더 간단해지겠어요!!
계속해서 문제 풀어볼게요~
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
728x90
반응형
'문제풀기 > 백준 문제풀이' 카테고리의 다른 글
[알고리즘] 브루트-포스법 문제 풀이(백준 2798번, 2231번) (4) | 2023.06.21 |
---|---|
[백준 문제 1157번] 단어 공부 문제 (0) | 2023.01.21 |
[백준 문제 2525번] 오븐 시계 문제 (0) | 2023.01.14 |
[백준 문제 1978번] 소수 찾기 문제 (0) | 2023.01.09 |
[백준 문제 2908번] 상수 문제 (0) | 2023.01.08 |