Coding Test

주사위의 개수

honey-vision 2024. 7. 22. 16:27

머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.


C언어

주어지는 [가로, 세로, 높이] 각 배열 값을 n으로 나누면 가로에 몇 개, 세로에 몇 개, 높이로 몇 개가 들어가는지 알 수 있다.

[가로/n, 세로/n, 높이/n]을 한 후 세 값을 곱하면 총 몇 개의 주사위가 들어가는지 알 수 있다.

따라서, 반복문을 사용해 가로, 세로, 높이를 방문하고 그때마다 n으로 나눠준다.

다 끝났다면 세 배열 값을 곱하고 최종 값을 answer로 반환한다.

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// box_len은 배열 box의 길이입니다.
int solution(int box[], size_t box_len, int n) {
    int answer = 0;
    for(int i=0; i<box_len; i++){
        box[i] = box[i]/n;
    }
    answer = box[0]*box[1]*box[2];
    return answer;
}

파이썬

box의 길이만큼 i번째 값을 n으로 나누는 작업을 반복한다. 

나눈 값이 들어있는 box의 0번, 1번, 2번의 값을 모두 곱한 후 answer로 반환한다.

def solution(box, n):
    answer = 0
    for i in range(len(box)):
        box[i] = box[i]//n
    answer = box[0]*box[1]*box[2]
    return answer

 

'Coding Test' 카테고리의 다른 글

자릿수 더하기  (0) 2024.07.24
양꼬치  (0) 2024.07.23
인덱스 바꾸기  (0) 2024.07.21
직각삼각형 출력하기  (0) 2024.07.20
배열 원소의 길이  (0) 2024.07.19