[백준 BOJ] 1712번 손익분기점 (C++/cpp)

2022. 5. 12. 00:04PS (Program Solving)/BOJ (백준)

문제 설명

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

 

1712번: 손익분기점

월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와

www.acmicpc.net

백준 BOJ 1712번 손익분기점 문제 사진

 

접근 방법 - 조건문을 활용한 수학 문제

백준의 1712번 문제는 조건문을 활용하여 해결해야 하는 수학적 연산 문제이다.

해당 문제는, 입력받은 고정적 소요 비용과 가변적 소요 비용, 그리고 판매 가격에 따라 이익이 발생하는 지점을 출력해야 하는 문제이다.

문제를 읽어보면 그리 어려운 내용은 아니니, 꼭 문제 링크의 설명을 읽어보길 바란다.

필자의 경우엔 입력값을 받는 대로 출력문을 바로 실행하여 문제를 해결하였다.

아래 코드의 연산식이 잘 이해되질 않는다면 필자가 작성한 코드의 설명을 참고해보길 바란다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 고정 소요 비용(a), 가변 소요 비용(b), 판매 가격(c)을 순차적으로 입력받는다.

 

2) 해당 입력값에 대하여, 손익분기점이 존재하는지를 판별하고 이에 따라 아래의 연산을 취한다.

- b가 c보다 크거나 같다면, 노트북 생산에 있어 손해가 발생하거나 이익이 발생할 수 없기 때문에 손익분기점이 나타나지 않는다.

따라서 이 경우에는, -1을 출력하고 실행 종료한다.

- 위 경우가 아니라면 수익은 반드시 발생하며 손익분기점 또한 반드시 발생한다.

따라서 이 경우에는, 고정 소요 비용(a)을 발생하는 수익(c-b)에 나눈 값을 구하고 여기에 1을 더한 값을 출력한다.

(a가 (c-b)로 나누어 떨어진다면 이는 손해도 이익도 아니며, 나머지가 존재한다면 이 지점에선 여전히 손해이다.

따라서 두 경우 모두 분기점은 아니기 때문에 나눈 값에 1을 더해야만 한다.)

 

3) 출력을 완료하였다면, 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;

//백준 1712번 코드
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);	cout.tie(NULL);

	int a, b, c;
	cin >> a >> b >> c;

	if (b >= c) { cout << -1 << endl; return 0; }
	else { cout << a / (c - b) + 1 << endl; }
}

 

제출 결과

백준 BOJ 1712번 손익분기점 문제 C++ 제출 결과

(2022.05.11 백준 1712번 문제 제출 결과)

반응형