Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
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 more
Archives
Today
Total
관리 메뉴

jeongwon

[백준 JAVA] 1712번 - 손익분기점 본문

오늘의 문제

[백준 JAVA] 1712번 - 손익분기점

jeongwon_ 2022. 6. 17. 15:29

문제:

 

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);
		 
	 	
	}
}