본문 바로가기

C&C++ 개발

8. Boxes through a tunnel

해커랭크 요약 : 

터널을 통해 박스를 운반하고 있는데 각 상자는 평행사변형(?)으로 되어 있고, 길이/너비/높이로 특징지어진다.

터널의 높이는 41피트ㄹ이고 너비는 무한하다. 상자의 높이가 터널의 높이보다 낮을 때에만 운반할 수 있다.

성공적으로 운반될 수 있는 상자의 부피를 찾아라 단, 상자를 회전할 수는 없다



요구사항 :

박스의 갯수를 입력하고 

줄바꿈으로 길이 너비 높이를 입력했을 때 부피를 리턴해주고 운반가능한 상자들을 찾아라

높이가 41피트 이하인 상자들의 부피를 분리된 줄로 출력하라



기능설계 :

구조체를 선언한다.

부피구하는 함수 선언

높이가 41피트보다 큰지 작은지 체크하는 함수 선언

한 줄씩 받아서 높이가 41피트보다 작다면 부피를 출력한다



코드 :


#include <stdio.h>
#include <stdlib.h>
#define MAX_HEIGHT 41

struct box

{

    int length;

    int width;

    int height;

};


typedef struct box box;


int get_volume(box b)

{    

    int volume=0;

    return b.length * b.width * b.height;

}


int is_lower_than_max_height(box b)

{

    /**

    * Return 1 if the box's height is lower than MAX_HEIGHT and 0 otherwise

    */

    if(b.height<MAX_HEIGHT)

    {

        return 1;

    }

    else

    {

        return 0;

    }

}


int main()
{
    int n;
    scanf("%d", &n);
    box *boxes = malloc(n * sizeof(box));
    for (int i = 0; i < n; i++) {
        scanf("%d%d%d", &boxes[i].length, &boxes[i].width, &boxes[i].height);
    }
    for (int i = 0; i < n; i++) {
        if (is_lower_than_max_height(boxes[i])) {
            printf("%d\n", get_volume(boxes[i]));
        }
    }
    return 0;
}



다이어그램 :




추측한 학습목표 : 

구조체를 사용할 수 있는가?

'C&C++ 개발' 카테고리의 다른 글

10. Bitwise Operators  (0) 2018.12.14
9. Sum of Digits of a five Digit number  (0) 2018.12.13
7. Digit Frequency  (0) 2018.12.10
6. For Loop in C  (0) 2018.12.08
5. Pointers in C  (0) 2018.12.08