묠니르묘묘
꾸준히 성장하는 개발자스토리
묠니르묘묘
전체 방문자
오늘
어제
  • 분류 전체보기 (188)
    • 프로그래밍 (48)
      • 디자인패턴 (4)
      • 예외,에러 (4)
      • Java (29)
      • Kotlin (3)
      • React.js (4)
      • JavaScript (2)
      • Apache Kafka (2)
    • Spring (49)
      • Spring (21)
      • Spring Cloud (3)
      • JPA (25)
    • 코딩테스트 (31)
      • 알고리즘 (5)
      • Java - 백준 (26)
      • Java - 프로그래머스 (0)
    • AWS (7)
    • 데이터베이스 (6)
    • 개발 etc (23)
    • 도서 (5)
    • 회고록 (4)
    • 데브코스-데이터엔지니어링 (15)

인기 글

최근 글

hELLO · Designed By 정상우.
묠니르묘묘

꾸준히 성장하는 개발자스토리

[백준] 1712번 - Java(자바)
코딩테스트/Java - 백준

[백준] 1712번 - Java(자바)

2022. 3. 7. 18:30

백준 1712번 자바

https://www.acmicpc.net/problem/1712

 

1712번: 손익분기점

월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와

www.acmicpc.net

문제 내용은 아래 더보기를 누르면 나온다.

더보기

 

 

 

 

알고리즘

A = 고정 비용

B = 가변 비용

C = 노트북 가격

손익분기점 : 총 수입(판매비용) > 총 비용(A + B)

노트북을 얼마나 팔아서 손익분기점을 넘기는지 구하시오.

(A, B, C는 21억 이하 자연수)

손익분기점이 나오지않으면 -1 출력해야한다.

 

여기서 우리는 손익분기점에 대해 생각해야한다.

A + B * 판매대수 = 총 비용

C * 판매대수 = 총 수입

총 수입 > 총 비용 의 조건이 성립한다면 손익분기점인 것이다.

여기서 공통점이 B와 C는 판매대수를 곱한다는 것이다.

그렇기에 B가 C보다 많다면 손익분기점을 절대 넘길 수 없다.

그렇다면 다음과 같은 공식이 성립된다.

if(B >= C) {
	// 손익분기점을 넘길 수 없다.
    System.out.println("-1");
}

 

다음은 손익분기점의 공식을 살펴보자.

문제에서는 총 수입 > 총 비용 이면 이익이 난다고 했다.

즉, 총 수입 = 총 비용 이면 이익과 손실이 없는 기준점이다.

이 기준점을 수식화하면 다음과 같다.

상품가격 * 판매대수 = 고정비용 + 가변비용 * 판매대수

 

if(B >= C) {
	// 손익분기점을 넘길 수 없다.
    System.out.println("-1");
} else {
	// 손익분기점을 가질 수 있다.
    System.out.println(A/(C-B) + 1);
}

즉 위와 같이 만들어진다.

 

 

 

1. 한 줄에 A, B, C 를 입력받는다.

2. 공백을 기준으로 구분하여 각각 A, B, C에 저장한다.

3. 위의 공식들을 넣는다.

 

 

 

풀이1

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class No_1712 {
    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 (B >= C) {
            System.out.println("-1");
        } else {
            System.out.println(A/(C - B) + 1);
        }
    }
}

 

저작자표시 비영리 (새창열림)

'코딩테스트 > Java - 백준' 카테고리의 다른 글

[백준] 3003번 - Java(자바)  (0) 2022.03.14
[백준] 2292번 - Java(자바)  (0) 2022.03.10
[백준] 1316번 - Java(자바)  (0) 2022.03.05
[백준] 2941번 - Java(자바)  (0) 2022.03.02
[백준] 5622번 - Java(자바)  (0) 2022.02.27
    '코딩테스트/Java - 백준' 카테고리의 다른 글
    • [백준] 3003번 - Java(자바)
    • [백준] 2292번 - Java(자바)
    • [백준] 1316번 - Java(자바)
    • [백준] 2941번 - Java(자바)
    묠니르묘묘
    묠니르묘묘

    티스토리툴바