210106 | 백준 1712 | C++

박나연·2021년 1월 6일
0

하루백준

목록 보기
3/20

1712번 : 손익분기점

#include <iostream>
using namespace std;

int main() {
	int a, b, c;
	cin >> a >> b >> c;

	int sonik = 0;
	while(true) {
		if (a + b * sonik < c * sonik) {
			cout << sonik;
			return 0;
		}

		if (sonik > 0 && ((a + b * sonik) - (a + b * (sonik - 1)) > ((c * sonik) - (c * (sonik - 1))))) {
			cout << "-1";
			break;
		}
		sonik++;
	}

	return 0;
}

처음에는, x값에 해당하는 물건의 갯수가 늘어날 수록, 물건판매수입이 증가하는 정도보다 총 비용이 증가하는 정보보다 적다면 손익분기점이 발생할 수 없다고 판단하여 예외처리를 실시하였다.

그랬다니 틀렸다는 답을 얻고... 더 간단한 방법을 찾을 수 있었다.

#include <iostream>
using namespace std;

int main() {
    int A, B, C;
    int n = 1;
    cin >> A >> B >> C;
    if (B >= C) {
        cout << -1;
        return 0;
    }

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

고정비용에서 물건값과 가변비용을 뺀값을 나눈 후 1을 더하면 손익분기점을 구할 수 있었다. 또, 만약 가변비용이 물건값보다 크다면 손익분기점이 생길 수 없으므로 그 부분을 미리 예외처리 해주었다.


profile
Data Science / Computer Vision

0개의 댓글