티스토리 뷰
손익분기점 문제라니.. 갑자기 경제문제를 풀라고 하니 은근 당황스러웠다.
package boj_basic.step7;
import java.util.Scanner;
public class Q1712 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt(); //고정비용
int B = sc.nextInt(); //가변비용
int C = sc.nextInt(); //제품가격
int s = 0;
int i = 0;
for(int x = 2^63-1; x>0; x--) {
if((A+B*x)<C*x) {
s = x;
}
else {
i = -1;
}
}
if(s>0)
System.out.println(s);
else
System.out.println(i);
}
}
처음에는 for문을 이용하여 풀었는데 입력범위가 2100000000(21억)까지라 int범위와 아슬아슬해서 long으로 바꿔도 풀어보고.. 했는데 오류가 나서 반복문이 아닌 다른 방법으로 풀어야 하나 생각이 들었다.
근데 완전 손익분기점 공식을 써서 풀어야 하는 것이었다.
먼저, 고정, 가변, 제품 가격을 입력 받고
제품 생상 비용(가변 비용, B)가 제품의 가격(C)보다 비싸거나 같다면 제품을 아무리 팔아도 이득이 될 수 없으므로 -1을 리턴해준다.
그 외의 경우는 무조건 제품 가격이 가변 비용보다 크므로 팔면 팔수록 이득이 발생하게 되므로, 처음 이득이 발생하는 지점을 찾는 공식을 사용하여 구해준다.
package boj_basic.step7;
import java.util.Scanner;
public class Q1712_1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt(); //고정비용
int B = sc.nextInt(); //가변비용
int C = sc.nextInt(); //제품가격
int s = 0;
if(B>=C)
System.out.println(-1);
else {
s=A/(C-B); //손익분기점 계산법
System.out.println(s+1);
}
}
}
손익분기점에 대한 내용은 https://st-lab.tistory.com/71 을 참고하였다.
마지막에 +1을 해주는 부분이 어려웠다.
나중을 대비하여 손익분기점 공식을 외워두는 것이 좋겠다!
'알고리즘' 카테고리의 다른 글
백준 #1193 java 2023.01.18 (0) | 2023.01.18 |
---|---|
백준 #2775 java 2023.01.18 (2) | 2023.01.18 |
백준 #1316 java 2023.01.15 (0) | 2023.01.15 |
백준 #2941 java 2023.01.15 (0) | 2023.01.15 |
백준 #1065 java 2023.01.13 (1) | 2023.01.13 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 북마크
- 영속
- 자바 스프링
- SQL 레벨업
- 스프링부트
- 웹MVC
- 회원탈퇴
- 스프링 북마크
- 로그아웃
- SQL
- 스프링
- 웹 MVC
- 인텔리제이
- 지연로딩
- 프론트엔드
- 스프링 커뮤니티
- 준영속
- DP
- 백준
- 자바
- 커뮤니티
- 백준 파이썬
- 로깅
- SQLD
- JPA
- 비영속
- elasticsearch
- 파이썬
- EnumType.ORDINAL
- 다이나믹 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함