728x90
꽤나 쉬운 문제다. 문제를 보면 알다시피 순이익을 구하고, 순이익이 고정비용을 넘겼을 때 손익분기점이 온 것이라 판단하면 된다. 그리고 손익분기점이 오기 까지의 물건 판매 수를 구하면 되는 문제이다.
처음에는 물건을 계속 팔아서 손익분기점을 넘긴다는 방식으로 생각해서 반복문인 while을 사용했었다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 백준 1712 _ 손익분기점
// 입력변수
Scanner sc = new Scanner(System.in);
int A = sc.nextInt(); // 고정 비용
int B = sc.nextInt(); // 가변 비용
int C = sc.nextInt(); // 노트북 판매 가격
int count = 1; // 노트북 판매 대수
int profit = C - B; // 순이익
if(profit > 0) { // 순이익이 0보다 클 때
while(A >= profit) { // 순이익이 고정비용을 넘길 때까지 반복
count++; // 판매 대수 증가
profit += C - B; // 순이익 증가
}
} else {
count = -1;
}
System.out.println(count);
}
}
이상 없이 작동했지만, 반복문을 사용한 탓에 런타임이 오래 걸렸다. 그래서 그냥 고정비용을 순이익으로 나눈 후 1을 더했더니 런타임이 확 줄어들기는 했다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 백준 1712 _ 손익분기점
// 입력변수
Scanner sc = new Scanner(System.in);
int A = sc.nextInt(); // 고정 비용
int B = sc.nextInt(); // 가변 비용
int C = sc.nextInt(); // 노트북 가격
int profit = C - B; // 노트북 가격 - 가변 비용 즉, 순이익
if(profit <= 0) { // 순이익이 0보다 작거나 같으면 의미가 없음
System.out.println("-1");
} else {
System.out.println(A/profit + 1);
}
}
}
728x90
'알고리즘' 카테고리의 다른 글
[백준] 1002 터렛 (Python) (1) | 2024.08.26 |
---|---|
[백준] 2941 크로아티아 알파벳 (Java) (0) | 2022.08.10 |
[백준] 2525 오븐시계 (Python) (0) | 2022.07.29 |
[백준] 2525 오븐시계 (Java) (0) | 2022.07.29 |
[백준] 2884 알람시계 (Python) (0) | 2022.07.27 |