hyunjin

[C++][수학1 - 손익분기점(1712)] 본문

알고리즘 연습/백준

[C++][수학1 - 손익분기점(1712)]

_h.j 2020. 8. 15. 14:24
728x90

백준 손익분기점(1712) 바로가기

 

백준 체점 결과

 

[문제 요약]

고정 비용, 제품의 가변 비용, 판매 요금이 입력으로 들어 올 때

손익이 나는 지점(0이 넘는 포인트, 같아도 안됨)이 언제인지 출력

단, 없는 경우엔 -1을 출력

 

 

[소스 코드]

#include <iostream>

using namespace std;

int main(void){
	int fixed, vari, price;
	cin >> fixed >> vari>>price ;

	if (vari >= price) 
		cout<<-1;
	else cout << fixed/(price-vari) + 1;
	return 0;
}

 

[풀이 전략]

1.우리가 얻을 수 있는 이익은 pirce - vari다.

 

2. fixed를 price - vari로 나누고 +1 을 하면 손익 발생하는 지점이 된다.

(문제에서 손익분기점 즉 최초로 이익이 발생하는 판매량을 출력하라 하였으니 1을 더해준다.)

 

3. 손익이 발생하지 않는 경우를 추가한다.

 

 

[놓친 포인트]

1. 처음엔 for루프를 돌려 판매량을 증가시켜가며 손익분기점을 찾으려 했다.

판매량의 초기 값을 fixed/price로 하려 했다기 때문에 1부터 검사하는 것 보단 빨리 찾았겠지만

그래도 위의 풀이보단 시간이 더 걸린다.

 

2.우리가 얻는 이익이 price - vari 라는 것을 바로 활용하지 못했다.

vari와 price를 따로 생각했다. 그냥 알고만 있고 그걸 사용할 생각을 못했다.

 

3.이익이 없는 경우가 뭘지 생각하지 못했다.

너무 당연하게 price가 vari보다 높은 값이 들어올 것이라고 생각해 이 경우는

추가하지 못했었다.

 

 

 

 

참고/출처

https://aorica.tistory.com/116

 

 

 

 

 

728x90