Uknow's Lab.
article thumbnail

https://www.acmicpc.net/problem/2520

 

2520번: 팬케이크 사랑

  첫 번째 테스트 케이스에서 주어진 재료를 가지고 바나나 팬케익 10개, 딸기 팬케익 1개, 초콜릿 팬케익 4개, 호두 팬케익 1개를 만들 수 있다.   두 번째 테스트 케이스에서 주어진 재료 중 밀

www.acmicpc.net

 

난이도 : 브론즈 2
태그 : 수학, 구현, 사칙연산

 

 

1. 설명

우유 8컵, 계란 노른자 8개, 설탕 4스푼, 소금 1스푼, 밀가루 9컵이 있으면 팬케이크 반죽 16개를 만들 수 있습니다.

즉, 반죽 1개당 우유 0.5개, 노른자 0.5개, 설탕 0.25스푼, 소금 0.0625스푼, 밀가루 0.5625컵 필요합니다.

 

 

우유, 계란, 설탕, 소금, 밀가루가 각각 16, 16, 8, 2, 17만큼 있을 때

 

16개의 우유가 있고, 반죽 1개당 우유 0.5개가 필요하니,

16개의 우유로 총 16/0.5 = 32개의 반죽을 만들 수 있습니다.

같은 원리로,

노른자 16개 => 16/0.5 = 32,

설탕 8스푼 => 8/0.25 = 32,

소금 2스푼 => 2/0.0625 = 32,

밀가루 9컵 => 17/0.5625 = 30 입니다.

밀가루가 부족해서 반죽을 총 30개 만들 수 있습니다.

 

 

토핑에 필요한 재료는 아래와 같습니다.

바나나, 딸기잼, 초콜릿, 호두가 각각 10, 47, 100, 19 만큼 있을 때,

10 + 1 + 4 + 1 = 16개를 만들 수 있겠네요.

 

 

바나나, 딸기잼, 초콜릿, 호두가 각각 10, 470, 100, 19 만큼 있을 때,

10 + 15 + 4 + 1 = 30개를 만들 수 있겠네요.

 

 

2. 소스코드

<cpp />
#include <stdio.h> int main() { int T; scanf("%d", &T); // 우유 8개, 노른자 8개, 설탕 4스푼, 소금 1스푼, 밀가루 9컵으로 16개의 팬케이크를 만들 수 있음 // 즉 반죽 1개당 우유 0.5개, 노른자 0.5개, 설탕 0.25스푼, 소금 0.0625스푼, 밀가루 0.5625컵 필요 double gram1[] = { 0.5, 0.5, 0.25, 0.0625, 0.5625 }; // 바나나, 딸기, 초콜릿, 호두 int gram2[] = { 1, 30, 25, 10 }; while (T--) { scanf("\n"); // 공백이 있어 입력을 하나 받음 int line1[5]; int line2[4]; int max = 1000000000; for (int i = 0; i < 5; i++) { scanf("%d", &line1[i]); int nowMax = line1[i] / gram1[i]; // 만들 수 있는 가장 많은 반죽 계산 if (max > nowMax) max = nowMax; } int cnt = 0; for (int i = 0; i < 4; i++) { scanf("%d", &line2[i]); cnt += (line2[i] / gram2[i]); } if (max < cnt) { printf("%d\n", max); } else { printf("%d\n", cnt); } } }

 

주의하실 점은, 토핑이 아무리 많아도

반죽이 없으면 만들 수 없기 때문에,

둘 중 작은 값을 출력하면 됩니다.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.