백준 문제풀이/브론즈4

백준 1712번 - 손익분기점

void_melody 2021. 10. 16. 23:39

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

우선 핵심은 노트북이 몇 대일 때인지를 구하는 게 핵심이었다.

맨 처음 든 생각은 while문을 활용해서 

while(A + B * n < C * n){ ....n++ } 을 해볼까 했으나 예제 2번에서 -1을 출력할 수가 없기도 하고

예제 3번처럼 수가 너무 커지면 메모리와 시간을 너무 낭비하니 그냥 식을 활용해볼까 했다.

우선 식이 저렇게 되는 상황에서, 

예제 2번을 대입해보면, C-B가 음수가 되는 상황이 문제가 되는 걸 알 수 있다.

그걸 조건문으로 걸어서 활용해보았다.

#include <iostream>

using namespace std;

int main()
{
	int A, B, C = 0;
	int n = 0;

	cin >> A >> B >> C;

	if ((C - B) <= 0)
	{
		cout << -1;
		return 0;
	}


	n = int(A / (C - B)) + 1;

	cout << n;

	return 0;
}

int()로 캐스팅을 해줬으니 당연히 내림을 해서 하나가 빌테니 +1을 해줘야한다.