❗️[JS] 주사위의 개수 programmers reduce()

0

코딩테스트

목록 보기
57/80
post-thumbnail

🎀 문제

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

function solution(box, n) {
    var answer = 0;
    return answer;
}

🎀 찾아 본 답변

function solution(box, n) {
  return box.reduce((acc, cur) => acc * Math.floor(cur / n), 1);
}
  1. 상자의 가로 길이 / 주사위 모서리 길이(n) 세로 길이 / n 높이 길이 / n를 해줘야 하는데, 주사위 길이로 나눴을 때의 몫만 필요하므로 Math.floor()를 이용한다.
    Math.floor(box[0] / n) * Math.floor(box[1] / n) * Math.floor(box[2] / n);
  2. reduce를 활용해서 하나씩 나누고 Math.floor해서 곱한 값을 반환한다.

📌 참고 링크

주사외의 개수

다 좋은데 수학적으로 이해가 가지 않으니...
더 공부해서 추가 설명을 적어보겠다.

profile
일단 해. 그리고 잘 되면 잘 된 거, 잘 못되면 그냥 해본 거!

0개의 댓글