문제 이해하기
고정비용=a, 가변비용=b, 노트북 가격=c, 팔린 노트북의 개수=n일 때, a+b*n<c*n가 성립하는 n값을 구하면 된다.
코드로 표현하기
문제의 출력 조건을 보면 손익분기점이 존재하지 않는 경우에는 -1을 출력하라고 한다. a+b*n<c*n 의 식이 절대 불가한 경우에 -1을 출력하는 것이라고 보면 된다. 위 식에서 b가 c보다 크거나 같은 경우 n의 크기가 아무리 커져도 b*n<c*n이 불가능하다는 것이 중요하다.
#include <iostream>
using namespace std;
int main() {
long long a, b, c;
cin >> a >> b >> c;
if (b >= c) {
cout << -1;
return 0;
}
//a+b*n<c*n
cout << a / (c - b) + 1;
}
난 처음에 바보같이 while문으로
while(a+b*n<c*n){n++;}
요딴식으로 해서 시간초과 오류가 나왔다. 사고하자...!
'알고리즘' 카테고리의 다른 글
[C++] 백준 2775번: 부녀회장이 될테야 (0) | 2022.02.28 |
---|---|
[C++] 백준 2292번: 벌집 (0) | 2022.02.25 |
[C++] 백준 10809번: 알파벳 찾기 (0) | 2022.02.07 |
[C++] 백준 11720번: 숫자의 합 (0) | 2022.02.07 |
[C++] 백준 1546번: 평균 (0) | 2022.01.29 |