Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 異端なスター
- 魔法っていっていいかな
- 히라이켄
- 문자열숫자를 숫자로
- 平井堅
- 자료형
- 아스키코드로 숫자 넣기
- 백준4344번
- 정수와 상수
- meta charset=
- !doctype html
- 마법이라고 불러도 좋을까?
- React.js
- 십진수 8진수
- html
- 백준 11720
- 오버플로우
- HEAD
- 아스키코드
- 백준 8958번
- ㅇ
- 십진수 16진수
- body
- Official髭男dism
Archives
- Today
- Total
갓비니
코딩 문제 연습(8단계 / 백준 1712번 - 손익분기점) C++ 본문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include<iostream>
using namespace std;
int main() {
int A, B, C;
cin >> A >> B >> C;
if (B >= C) {
cout << -1;
return 0;
}
cout << A / (C - B) + 1;
}
|
cs |
<손익분기점이 존재할 경우>
손익분기점은 최초로 이익이 발생하는 지점이다.
C*생산대수 - (A-B*생산대수) > 0 일때의 생산대수를 구하는 것이 문제이다.
이 식을 정리하면
생산대수 > A/(C-B) 가 되는 생산대수를 구하면 되는것인데
예시로, 1000 70 170의 경우
1000/(170-70) = 10 이다
최소 10을 넘는 수 이어야하므로 +1 한 11이 답이다.
즉, 손익분기점은 ( 존재할경우 ) = A/(C-B) + 1를 만족하면 되는것이다.
<손익분기점이 존재하지 않는 경우>
하지만 손익분기점이 존재하지 않는 경우가 있다.
C*생산대수-(A+B*생산대수)<0 일 경우이다.
이 식을 정리하면
생산대수 < A/(C-B) 이어야 하는데
예시로 3 2 1의 경우
3/(1-2) 이다.
손익분기점의 값이 음수이거나 존재할 수 없어야 (분모가 0이 되는 경우) -1 값을 출력할 수 있다.
따라서 0>=C-B 이어야하고 이를 이항하면
B>=C 가 된다.
따라서 이것을 if문으로 작성하고 return 0; 으로 메인문 자체를 빠져나오면된다.
'Programming > 코딩 문제 풀이' 카테고리의 다른 글
★코딩 문제 연습(8단계 / 백준 2292번 - 벌집) C++ (0) | 2021.01.28 |
---|---|
★코딩 문제 연습(7단계 / 백준 1316번 - 그룹단어 체커) C++ (0) | 2021.01.25 |
코드잼 기초 100제 - 1006번(형식지정자),1007,1008,1010 (0) | 2021.01.18 |
programmers 연습문제 : 가운데 글자 가져오기 / C++ 코드 (0) | 2020.07.03 |
programmers 연습문제 : 2016년 / C++ 코드 (0) | 2020.07.03 |