BOJ | 1712번

송치헌·2021년 6월 26일
0
post-thumbnail

Python 풀이

a,b,c = map(int,input().split()) #고정 비용(a), 생산 비용(b), 판매가(c)
#판매량은 양수어야하므로 0보다 작거나 같으면 손익분기점이 존재하지 않는다.
if c-b <= 0: print(-1) 
else: print(a//(c-b)+1) #손익분기점을 넘는 판매량을 계산하는 식

A+Bx<CxA + Bx < Cx (AA는 고정 비용, BB는 생산 비용, CC는 노트북 판매가, xx는 판매량이다.)
위 문제를 식으로 표현하면 이렇게 된다. xx대를 생산하면 1대를 생산하는데 필요한 생산 비용 BB만큼 곱해주고, 총 판매가도 CC만큼 곱해주면 되는데 총 판매가가 생산하는데 필요한 가격보다 높아야 하므로 이런 식이 나온다. 여기서 식을 xx에 대해 정리하면
A<(CB)xA < (C-B)x
여기서 CBC-B가 0이나 음수가 되면 문제에서 제시한 자연수라는 조건에 모순이기 때문에 if c-b <= 0: print(-1) 손익분기점을 넘을 수 없어서 -1을 출력하면 된다.
CBC-B가 양수면 ACBA\over C-B<x<x가 되므로 최초로 손익분기점을 넘는 판매량(xx)는 xx의 최소값을 구하라는 것과 같다. 따라서 ACBA\over C-B를 계산해서 나온 값보다 큰 정수를 구하면 되므로 print(a//(c-b)+1)을 해주면 된다.

C++ 풀이

#include <iostream>

using namespace std;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	int A, B, C;
	cin >> A >> B >> C;
	if (C - B <= 0)cout << -1;
	else {
		cout << A / (C - B) + 1;
	}	
}
profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요

0개의 댓글