알고리즘 스터디 (손익 분기점[백준 1712])

박윤택·2022년 5월 2일
3

알고리즘

목록 보기
2/25

문제

문제 이해

노트북을 생산하는데 있어서 고정 비용과 가변비용 합산하고 판매하려는 노트북의 수를 고려한 총 가격을 비교하여 손익분기점을 찾는 문제이다.

문제에서 볼 수 있다시피 노트북 판매 대수와 상관없이 드는 가격A
한대의 노트북을 생산하는데 드는 가변비용B
노트북 가격C

라 한다면 수식은 A + B X N(노트북 수) > C X N(노트북 수) 임을 알 수 있다. 단순하게 for문을 돌려 해결하려고 하니 왠지 찝찝하게 걸렸던게 정답 비율과 시간 제한이었다.

그래서 N을 알아야 하기 때문에 N을 좌항으로 넘기면 N > A / (C - B)일 때의 N을 찾으면 된다.

코드 작성

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

public class BreakEvenPoint {
  static int A, B, C;

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine());
    
    A = Integer.parseInt(st.nextToken());
    B = Integer.parseInt(st.nextToken());
    C = Integer.parseInt(st.nextToken());

    if (C <= B) // <- 주의 필요!
      System.out.println("-1");
    else
      System.out.println(A / (C - B) + 1);
  }
}

코드 설명

앞서 문제 이해에서 설명했다시피 N > A / (C - B)일 때의 N의 값을 구하는 코드이다. 여기서 주의해야할 점은 C-B가 음수가 되거나 0이 되었을 때는 손익분기점이 존재하지 않는다는 것이다.

0개의 댓글