jeongwon
[백준 JAVA] 1712번 - 손익분기점 본문
문제:
1712번: 손익분기점
월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와
www.acmicpc.net
답안:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
long a=Long.parseLong(st.nextToken()); //(1)
long b=Long.parseLong(st.nextToken());
long c=Long.parseLong(st.nextToken());
if(c<=b) System.out.println(-1); //**수정
else System.out.println(a/(c-b)+1); //(2)
}
}
(1)
int 타입의 범위가 음수와 양수 기준 각각 약 21억이므로 long 타입으로 변환할 필요가 없다.
(2)
판매량을 수식으로까지 만들었지만 (N=A(C-B)) 계속 답이 1씩 모자라는 것이 아닌가?
해답은 문제에 있었다. 조건 자체가 이익이 발생하는 지점, 즉 N>A(C-B)인 지점이기 때문 (우선 그렇게 이해했다) 이었다.
(도움받은 곳: https://st-lab.tistory.com/71)
개선 답안:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int a=Integer.parseInt(st.nextToken());
int b=Integer.parseInt(st.nextToken());
int c=Integer.parseInt(st.nextToken());
if(c<=b) System.out.println(-1);
else System.out.println(a/(c-b)+1);
}
}'오늘의 문제' 카테고리의 다른 글
| [백준 JAVA] 2292번 - 벌집 (0) | 2022.06.19 |
|---|---|
| [백준 JAVA] 1316번 - 그룹 단어 체커 (0) | 2022.06.16 |
| [백준 JAVA] 2941번 - 크로아티아 알파벳 (0) | 2022.06.09 |
| [백준 JAVA] 5622번 - 다이얼 (0) | 2022.06.08 |
| [백준 JAVA] 2908번 - 상수 (0) | 2022.06.08 |