1일 1백준 2일차, 오늘 푼 문제는 1712번 문제인 "손익분기점"이다.
https://www.acmicpc.net/problem/1712
처음엔 for문을 돌리면서 i의 값을 증가시키고
a + b*i < c*i와 같은 조건식을 만족시키면 그 i의 값을 출력시키는 방식을 사용했다.
하지만 이 문제의 시간 제한을 만족시키지 못했고, 이내 내가 얼마나 비효율적인 알고리즘을 채택했는지 깨달았다.
그냥 a/(c-b)+1의 값을 출력하면 반복문 자체가 필요하지 않은 문제였기 떄문이다.
손익분기점이 존재하는지 판단하는 방법으로는 b와 c의 크기 비교를 선택했다.
생산 비용이 판매 수익보다 비싸면 절대 손익분기점을 넘지 못하는 것은 당연한 이치이기 때문이다.
아래로 내리면 정답 코드가 나옵니다. 문제를 아직 풀지 않으신 분들은 주의해주세요.
import java.util.Scanner;
public class pro1712 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long a = sc.nextInt();
long b = sc.nextInt();
long c = sc.nextInt();
if( b >= c){
System.out.println("-1");
}
else{
System.out.println(a/(c-b) + 1);
}
}
}
'1일 1백준' 카테고리의 다른 글
1일 1백준 : 1193번 분수찾기 (0) | 2022.06.16 |
---|---|
1일 1백준 : 2292번 벌집 (0) | 2022.06.14 |
1일 1백준 : 1316번 그룹 단어 체커 (0) | 2022.06.14 |
(정말 오랜만에) 1일 1백준 : 2941번 크로아티아 알파벳 (0) | 2022.06.13 |
1일 1백준 : 10일차 5622번 다이얼 (0) | 2022.05.02 |