저장을 습관화
프로그래머스 LV.0 주사위의 개수 본문
프로그래머스 LV.0 주사위의 개수
https://school.programmers.co.kr/learn/courses/30/lessons/120845
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 명
주사위의 개수
2. 문제 설명
머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.
3. 제한 사항
- box의 길이는 3입니다.
- box[0] = 상자의 가로 길이
- box[1] = 상자의 세로 길이
- box[2] = 상자의 높이 길이
- 1 ≤ box의 원소 ≤ 100
- 1 ≤ n ≤ 50
- n ≤ box의 원소
- 주사위는 상자와 평행하게 넣습니다.
4. 예시
box | n | result |
[1, 1, 1] | 1 | 1 |
[10, 8, 6] | 3 | 12 |
5. 기본 제공 코드
function solution(box, n) {
var answer = 0;
return answer;
}
6. 제출한 내 답
const solution = (box, n) => {
return (
Math.floor(box[0] / n) * Math.floor(box[1] / n) * Math.floor(box[2] / n)
);
};
6-2. VSC에 작성한 내용
const solution = (box, n) => {
// 가로 세로에 맞추고 높이에서 한번 더 계산하면 될것 같은데
// 가로 box[0]/n, 세로 box[1]/n 소수점은 드랍
// 높이 box[2]/n 소수점 드랍
// 가로*세로*높이
// let 가로 = Math.floor(box[0] / n);
// let 세로 = Math.floor(box[1] / n);
// let 높이 = Math.floor(box[2] / n);
// console.log(`${가로},${세로},${높이}`);
// return 가로 * 세로 * 높이;
return (
Math.floor(box[0] / n) * Math.floor(box[1] / n) * Math.floor(box[2] / n)
);
};
// 테스트
console.log(solution([1, 1, 1], 1));
console.log(solution([10, 8, 6], 3));
7. 특이사항
없음
8. 다른 사람이 작성한 답
8-1. reduce
function solution(box, n) {
return box.reduce((acc,v) => acc * Math.floor(v / n), 1);
}
8-2. map
function solution(box, n) {
return box.map(v=>~~(v/n)).reduce((a,v)=>a*v,1);
}
'코딩 테스트 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 LV.0 가까운 1 찾기 (0) | 2023.09.20 |
---|---|
프로그래머스 LV.0 특별한 이차원 배열 1 (0) | 2023.09.20 |
프로그래머스 LV.0 콜라츠 수열 만들기 (0) | 2023.09.20 |
프로그래머스 LV.0 외계행성의 나이 (0) | 2023.09.20 |
프로그래머스 LV.1 정수 내림차순으로 배치하기 (0) | 2023.09.20 |