
문제
백준 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마리 더 시키는게 싸다)
최소금액만 구하면 된다지만 이거 좀 ... 음식 낭비...
지구를 보호합시다🌎🌎🌎