[백준/JAVA] 16917번 양념 반 후라이드 반

정은아·2025년 2월 21일

[알고리즘] 수학 모음

목록 보기
147/152
post-thumbnail

문제

백준 16917번 양념 반 후라이드 반 JAVA

내 풀이

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));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st = new StringTokenizer(br.readLine());

        // 1. 테스트 케이스들을 입력받는다.
        // 2. 원래대로 주문했을 때의 가격을 입력받는다.
        // 3. 반반 치킨으로 각각 주문했을 때를 입력받는다.
        // 3-1. 주문해야하는 양념, 후라이드 치킨 중, 적은 수를 구한다.
        // 3-2. 적은 수가 양념인지 후라이드인지에 따라 값을 따로 구한다.
        // 4. 반반으로 시켰을 때의 가격과 원래 가격을 비교해 적은 수를 출력
        // 주의: 반반의 가격이 후라이드나 양념의 절반가격보다 싸다면 그걸 주의한다.
        int yang = Integer.parseInt(st.nextToken());
        int fried = Integer.parseInt(st.nextToken());
        int half = Integer.parseInt(st.nextToken());
        int doubleHalf = half * 2;
        int plzYang = Integer.parseInt(st.nextToken());
        int plzFried = Integer.parseInt(st.nextToken());

        int basic = (yang * plzYang) + (fried * plzFried);
        int halfCount = 0;
        int answer = 0;

        int min = Math.min(plzFried, plzYang);

        if (min == plzFried) {
            if (doubleHalf < yang) {
                halfCount = (half * plzFried) * 2 + ((plzYang - min) * half * 2);
            } else {
                halfCount = (half * plzFried) * 2 + (plzYang - min) * yang;
            }
        } else {
            if (doubleHalf < fried) {
                halfCount = (half * plzYang) * 2 + ((plzFried - min) * half * 2);
            } else {
                halfCount = (half * plzYang) * 2 + (plzFried - min) * fried;
            }
        }

        answer = Math.min(basic, halfCount);

        sb.append(answer);
        System.out.println(sb.toString());
    }
}

느낀점

이 문제는 언뜻 보면 단순 계산 같은데, 반반 치킨이 후라이드나 양념치킨 한 마리의 가격보다 절반 이하일 때를 주의하면 된다.
최소 금액만 구하면 되기 때문이다.
(ex. 양념치킨 = 10,000원이고 반반치킨 = 500원 이라면 반반치킨을 2마리 더 시키는게 싸다)

최소금액만 구하면 된다지만 이거 좀 ... 음식 낭비...
지구를 보호합시다🌎🌎🌎

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글