본문 바로가기
  • 기록
알고리즘

[C++] 백준 1712번: 손익분기점

by juserh 2022. 2. 25.

문제 이해하기

고정비용=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++;} 

요딴식으로 해서 시간초과 오류가 나왔다. 사고하자...!