[Baekjoon Online Judge] 백준 1712번 손익분기점
(C++, Python)
(글쓴날 : 2020.04.07)
* Baekjoon Online Judge, 백준 1712번 문제 C++, Python 언어 풀이입니다.
* 소스 코드의 저작권은 글쓴이에게 있습니다.
백준 1712번 손익분기점
1) 문제
문제 링크 : https://www.acmicpc.net/problem/1712
1712번: 손익분기점
월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다. 노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로
www.acmicpc.net
2) 풀이 과정
고정 비용, 가변 비용, 판매 비용이 주어질 때 손익분기점을 넘기는 판매량을 구하는 문제입니다.
언뜻 보면 엄청 쉬운 문제이지만, 시간제한이 0.35초여서 단순 반복문으로 접근했다간 시간 초과가 발생하므로 좀 더 머리?를 쓰셔야 합니다.
저의 경우, 판매량을 x로 놓고 고정 비용 + 가변 비용 * x < 판매 비용 * x의 수식을 세워 접근했습니다.
따라서, x > 고정 비용 / 판매 비용 - 가변 비용이라는 수식이 성립하므로 반복문을 돌리지 않고 판매량을 구했으며, 손익분기점을 넘기는 판매량을 출력해야 하므로 구한 x에 1을 더해 출력했습니다.
단, x를 구하기에 앞서 가변 비용이 판매 비용보다 높거나 같을 경우 손익분기점이 존재하지 않게 되므로, 해당 경우에 -1을 출력하는 조건문을 먼저 적용해 예외 처리하여 문제를 해결했습니다.
3) 코드
* C++ 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <iostream>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int a, b, c;
cin >> a >> b >> c;
if (b >= c)
cout << -1;
else
cout << (a / (c - b)) + 1;
return 0;
}
|
* Python 코드
1
2
3
4
5
6
7
8
|
import sys
input = sys.stdin.readline
a, b, c = map(int, input().split())
if b >= c :
print(-1)
else:
print(-a // (b - c) + 1)
|
'Deprecated' 카테고리의 다른 글
[Baekjoon Online Judge] 백준 2580번 스도쿠(C++, Python) (0) | 2020.04.10 |
---|---|
[Baekjoon Online Judge] 백준 2585번 경비행기(C++, Python) (0) | 2020.04.09 |
[Baekjoon Online Judge] 백준 1939번 중량제한(Python) (0) | 2020.04.07 |
[Baekjoon Online Judge] 백준 3079번 입국심사(Python) (0) | 2020.04.07 |
[Baekjoon Online Judge] 백준 2110번 공유기 설치(Python) (0) | 2020.04.07 |