-
백준 2896번 : 무알콜 칵테일 (C 언어)c c++ 언어 공부 2023. 10. 30. 12:17
https://www.acmicpc.net/problem/2896
2896번: 무알콜 칵테일
첫째 줄에 구매한 오렌지, 사과, 파인애플 주스의 양 A, B, C가 주어진다. (1 ≤ A, B, C ≤ 500) 둘째 줄에 칵테일을 만드는데 필요한 각 주스의 비율 I, J, K가 주어진다. (1 ≤ I, J, K ≤ 50)
www.acmicpc.net
Code:
1234567891011121314151617#include <stdio.h>#include <limits.h>int main() {double a, b, c;double i, j, k;double min = INT_MAX;scanf("%lf %lf %lf", &a, &b, &c);scanf("%lf %lf %lf", &i, &j, &k);double A = a / i;double B = b / j;double C = c / k;min = (A > B) ? B : A;min = (min > C) ? C : min;printf("%lf %lf %lf", a - i * min, b - j * min, c - k * min);}cs 문제 설명:
상근이와 지수는 마트에서 오렌지 주스, 사과 주스, 파인애플 주스를 구매했습니다. 그들은 이 주스로 무알콜 칵테일을 만들어 학교에서 판매하려고 합니다. 그러나 칵테일을 만들기 전에 이미 주스를 구매했기 때문에 주스가 남을 수도 있습니다. 주어진 비율과 구매한 주스 양에 따라, 가능한 많은 칵테일을 만들 때 각 주스가 얼마나 남는지 계산하는 프로그램을 작성해야 합니다.
입력:
- 첫째 줄에 구매한 오렌지, 사과, 파인애플 주스의 양 A, B, C가 주어집니다. (1 ≤ A, B, C ≤ 500)
- 둘째 줄에 칵테일을 만드는데 필요한 각 주스의 비율 I, J, K가 주어집니다. (1 ≤ I, J, K ≤ 50)
출력:
- 첫째 줄에 칵테일을 최대한 많이 만들었을 때, 각 주스가 얼마나 남는지를 공백으로 구분하여 출력해야 합니다. 정답과의 오차는 10^-4까지 허용됩니다.
코드 설명:
- 우선, 사용자로부터 구매한 오렌지, 사과, 파인애플 주스의 양과 칵테일을 만드는데 필요한 각 주스의 비율을 입력받습니다.
- min 변수는 각 주스의 비율을 이용하여 가능한 최대 칵테일 양을 계산할 때 사용됩니다. INT_MAX로 초기화되어 있어 최솟값을 찾기 위한 비교에 사용됩니다.
- 각 주스의 비율을 이용하여 가능한 최대 칵테일 양을 계산하고, 그 중에서 가장 작은 양을 min에 저장합니다.
- 구매한 주스에서 최대 칵테일 양을 빼서 남는 주스 양을 계산합니다.
- 각 주스의 남은 양을 출력합니다.
'c c++ 언어 공부' 카테고리의 다른 글
백준 19698번 : 헛간 청약 (C 언어) (0) 2023.10.31 백준 2476번 : 주사위 게임 (C 언어) (0) 2023.10.31 백준 2523번 : 별 찍기 - 13 (C 언어) (0) 2023.10.30 백준 29634번 : Hotel (C 언어) (1) 2023.10.29 백준 1743번 : 음식물 피하기 (C 언어) (0) 2023.10.28