먼저 상자의 가로, 세로, 높이의 배열이 저장되어있는 box배열
box[0] = 가로
box[1] = 세로
box[2] = 높이
보아하니 사각형의 부피를 구해야할거 같은 냄새
그리고 모서리의 길이가 n인 주사위
주사위는 정사각형의 육면체니까 가로 n, 세로 n, 높이 n인 셈이다.
그리고 우리가 구해야할 값은 box에 들어갈 수 있는 주사위의 최대 개수이다.
예제 2를 보면 box의 배열에는 [10, 8, 6]이고 이말은
가로 10, 세로 8, 높이 6인 box에 가로, 세로, 높이가 3인 주사위를 최대한 가득 채워야하는 것이다.
function solution(box, n) {
return Math.floor(box[0] / n) * Math.floor(box[1] / n) * Math.floor(box[2] / n)
}
예제2를 가지고 문제를 풀면,
가로가 10인 박스에 가로가 3인 주사위가 가로로 들어가려면 3개가 최대이고,
세로가 8인 박스에 세로가 3인 주사위가 세로로 들어가려면 2개가 최대이다.
그리고 높이가 6인 박스에 높이가 3인 주사위가 높이만큼 들어가려면 2개가 최대이다.
3 * 2 * 2 = 12
그러니까 이걸 코드로 풀면
box의 가로인 box[0]의 요소는 10이고, 주사위의 모서리는 3이니까
10 / 3을 통해 3을 얻고 소수점을 버리고 정수를 얻기 위해서 Math.floor를 사용했다.
box의 세로인 box[1]의 요소는 8이고, 주사위의 모서리는 3
Math.floor(8 / 3)을 통해 2라는 값을 구했다.
마지막으로 box의 세로인 box[2]의 요소는 6이고, 주사위의 모서리는 3
Math.floor(6 / 3)으로 2라는 값을 구했다.
그리고 각 구해진 값을 곱하여 결과값을 반환한다.
댓글