높이가 41이고 너비가 매우 큰 터널이 있다고 가정합니다. 길이, 너비 및 높이가 있는 상자 목록도 있습니다. 상자의 높이가 터널 높이보다 정확히 작으면 상자가 터널을 통과할 수 있습니다. 터널을 통과하는 부피의 양을 찾아야 합니다. 볼륨은 길이 * 너비 * 높이입니다. 따라서 N개의 행과 3개의 열이 있는 2D 배열인 숫자 N이 있습니다.
따라서 입력이 N =4 boxs =[[9,5,20],[3,7,15],[8,15,41],[6,3,42]]인 경우 출력은 다음과 같습니다. 900과 315는 처음 두 상자를 통과할 수 있습니다. 볼륨은 9 * 5 * 20 =900 및 3 * 7 * 15 =315입니다. 다른 상자의 높이는 지원되지 않습니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
길이, 너비, 높이로 Box 데이터 유형 정의
-
volume() 함수를 정의하면 상자가 필요합니다.
-
반환 box.length * box.width * box.height
-
lower() 함수를 정의하면 상자가 필요합니다.
-
box.height <41이면 true를 반환하고 그렇지 않으면 false
-
기본 방법에서 다음을 수행하십시오.,
-
initialize i :=0의 경우, i
-
lower(boxes[i])가 참이면:
-
디스플레이 볼륨(박스[i])
-
-
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <stdio.h> #define N 4 struct Box{ int length, width, height; }; int volume(struct Box box){ return box.length*box.width*box.height; } int lower(struct Box box){ return box.height < 41; } int solve(struct Box boxes[]){ for (int i = 0; i < N; i++) if (lower(boxes[i])) printf("%d\n", volume(boxes[i])); } int main(){ struct Box boxes[N] = {{9,5,20},{3,7,15},{8,15,41},{6,3,42}}; solve(boxes); }
입력
4, {{9,5,20},{3,7,15},{8,15,41},{6,3,42}}
출력
900 315