Search
Duplicate
🙆🏻‍♀️

양념 반 후라이드 반

주차
15
문제번호
1116
언어
티어
브론즈
유형
구현
nj_Blog
nj_상태
이해도
풀이
사람
이해도 2
13 more properties

메모리

시간

1116 KB
0 ms

Code

#include <cstdio> #include <algorithm> using namespace std; int main(int argc, char const *argv[]) { int A,B,C,X,Y; scanf("%d%d%d%d%d", &A, &B, &C, &X, &Y); int result; int price; int max_ch; if ((A + B) > (C * 2)) { result = (min(X,Y) * 2) * C; if (X == Y) { printf("%d", result); return 0; } else { max_ch = max(X,Y) - min(X,Y); price = X > Y ? A : B; if (price > C * 2) { max_ch = max_ch * 2 * C; result += max_ch; } else result += max_ch * price; } } else if (A > C * 2) { Y = X >= Y ? 0 : Y - X; result = (C * X * 2) + (B * Y); } else if (B > C * 2) { X = Y >= X ? 0 : X - Y; result = (C * Y * 2) + (A * X); } else result = (A * X) + (B * Y); printf("%d", result); return 0; }
C++
복사

문제 풀이

처음에는 a+b의 합이 c* 2 일때만 반반을 사고 남는 걸 한마리씩 구매하면 된다 생각했으나
남는 치킨의 가격이 c*2 보다 크다면 반반 주문 후 치킨이 남더라도 반반으로 모두 구매하는게 더 적은 금액으로 구매할 수 있다.
아래처럼 경우를 나누어 단순계산 하였다.
1.
반반 가격보다 X, Y 둘다 가격이 작을때
2.
X, Y 둘 중 하나가 반반보다 가격이 클때
3.
A + B 가 C보다 가격이 작고 더 마리수가 많은 종류의 가격이 반반 *2 보다 작을때
4.
A + B 가 C보다 가격이 작고 더 마리수가 많은 종류의 가격이 반반 *2 보다 클때