[BOJ / C++] #1712 손익분기점

Inryu·2020년 8월 13일
0

Problem Solving

목록 보기
1/51
post-thumbnail

🍐문제

https://www.acmicpc.net/problem/1712

🍐풀이방식

A : 고정비용
B : 한 대의 가변 비용
C : 노트북의 가격

x: 노트북 개수

  1. 손익분기점이 발생하려면, A+Bx<Cx 여야 한다. 식을 정리하면

x>A/(c-b)인 시점이 손익분기점이고 x는 자연수이므로, x는 A/(c-b)+1 이다.

  1. A+Bx<Cx에서, B>C 이면 x가 무한으로 커져도 A+Bx<Cx가 성립할 수 없으므로 B>C일 때, 손익분기점이 존재하지 않는다.

🍐코드

//#1712 손익분기점
#include <iostream>
using namespace std;

int main(void) {

	//입출력 속도 향상 
	cin.tie(NULL);
	cout.tie(NULL);
	ios_base::sync_with_stdio(false);

	int i;
	int A,B,C;
	int x=0; // 노트북 개수

	/*
	A : 고정비용
	B : 한 대의 가변 비용
	C : 노트북의 가격

	*/
	cin >> A>>B>>C;

	while(true) {

		/*
		1. 손익분기점이 존재하지 않을 때
		가변 비용 > 노트북의 가격일 때
		*/

		if (B >= C) {
			cout << -1;
			break;
		}

		/*
		2. 손익분기점이 존재하려면

		A+bx<cx
		A<(c-b)x 여야 하니깐

		x>A/(c-b)인 시점
		x는 자연수이므로
		x=A/(c-b)+1

		*/

		else {
			cout << A / (C - B) + 1;
			break;
		}

	}

}
profile
👩🏻‍💻

0개의 댓글