728x90
반응형
📕 문제 설명
머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box 와 주사위 모서리의 길이 정수 n 이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.
📗제한사항
- box의 길이는 3입니다.
- box[0] = 상자의 가로 길이
- box[1] = 상자의 세로 길이
- box[2] = 상자의 높이 길이
- 1 ≤ box의 원소 ≤ 100
- 1 ≤ n ≤ 50
- n ≤ box의 원소
- 주사위는 상자와 평행하게 넣습니다.
📘 입출력 예와 설명
box | n | result | 설명 | |||||
[1, 1, 1] | 1 | 1 | 상자의 크기가 가로1, 세로1, 높이1 이므로 모서리의 길이가 1인 주사위는 1개 들어갈 수 있습니다. | |||||
[10, 8, 6] | 3 | 12 | 상자의 크기가 가로 10, 세로 8, 높이 6이므로 모서리의 길이가 3인 주사위는 12개 들어갈 수 있습니다. |
📙풀이
주어진 n으로 box의 가로, 세로, 높이를 나누면 각각에 몇개의 주사위가 들어갈 수 있는지 알 수 있습니다.
그러나 여기서 나눈 값이 딱 떨어지지 않고 소수점이 나올 경우를 고려해야겠습니다.
그 다음 가로, 세로, 높이에 들어갈 수 있는 갯수를 곱해주면 답을 구할 수 있습니다.
function solution(box, n) {
var arr = box.map(v => Math.floor(v/n))
return arr.reduce((a,b)=>a*b)
}
map을 이용해서 나눈 값의 배열을 새로 담아주고,
reduce를 이용해서 배열의 모든 요소를 곱해주었습니다.
글 읽어 주셔서 감사합니다.
부족한 부분이 있다면 댓글로 알려주시면 감사히 배우겠습니다:)
728x90
'Javascript' 카테고리의 다른 글
[javascript] 중첩 반복문 - 중첩 for문, 중첩 while문 (feat. 구구단) (2) | 2023.06.19 |
---|---|
[javascript] 프로그래머스 - 팩토리얼 (0) | 2023.06.17 |
[javascript] reduce 메소드 사용법(feat. reduceRight) (0) | 2023.06.14 |
[javascript]반복문(for, while)과 배열 메소드(forEach,map) 전격비교! (0) | 2023.06.12 |
[Javascript] Tilde? Tilt? 틸드 연산자 사용법 (feat.물결 ~) (0) | 2023.05.31 |