코딩테스트
[코딩테스트]주사위의 개수
개발자 혜진
2022. 10. 27. 10:50
문제 설명
머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- box의 길이는 3입니다.
- box[0] = 상자의 가로 길이
- box[1] = 상자의 세로 길이
- box[2] = 상자의 높이 길이
- 1 ≤ box의 원소 ≤ 100
- 1 ≤ n ≤ 50
- n ≤ box의 원소
- 주사위는 상자와 평행하게 넣습니다.
입출력 예boxnresult
[1, 1, 1] | 1 | 1 |
[10, 8, 6] | 3 | 12 |
입출력 예 #1
- 상자의 크기가 가로 1, 세로 1, 높이 1이므로 모서리의 길이가 1인 주사위는 1개 들어갈 수 있습니다.
입출력 예 #2
- 상자의 크기가 가로 10, 세로 8, 높이 6이므로 모서리의 길이가 3인 주사위는 12개 들어갈 수 있습니다.
function solution(box, n) {
return box.map((x)=> Math.floor(x/n)).reduce((a,b) => a * b)
}
map 을 이용하여 각각 모서리가 n 인 주사위를 나눠주고, 소수점이 있다면 소수점 버림을 해주었습니다. 그리고 reduce를 이용해 각각 배열의 값을 곱해주어 문제를 해결했습니다.
function solution(box, n) {
return box.map(v=>~~(v/n)).reduce((a,v)=>a*v,1);
}
~~연산자는 Math.floor와 같은 거라고 합니다! 다른 분들은 어떻게 해결했는지 보는것도 많은 공부가 될것 같아요.