정답 1
찾아보니 초등학교 6학년에 도형 문제였던것 같은데. 오랜만에 상당히 반가웠다. 여기서 또 보는구나.
오랜만에 봐서 그런가 처음에 이해하는데 아주 약간 시간이 걸렸다. 하지만 결국 감이 왔다.
map 과 reduce 라는 Javascript 의 내장 기능들을 활용해 문제를 풀어야겠다는 직감이 딱 느껴졌다.
이렇게 둘을 활용해야 가장 우아하게 문제가 풀릴것 같았다.
function solution(box, n) {
return box.map((d) => parseInt(d/n)).reduce((a, b) => a * b);
}
결과는 정답이였다.
map 을 통해서 box 배열 내 수를 각 주사위의 모서리 길이에 맞게 계산하여 주사위 모서리가 몇개씩 들어가는지 파악하여 가공. 그다음 reduce 를 사용하여 배열내 3개의 수를 모두 곱하여 직육면체 내 정육면체 주사위가 몇개 들어가는지를 구했다.
정답 2
다른 정답들을 둘러보다 맘에드는 답 하나를 찾았다.
let solution = (box,n) => box.map(e=>~~(e/n)).reduce((a,b)=>a*b);
정말 끝까지 다 줄여놓아 정말 깔끔하다.
'프로그래머스 - 코딩테스트' 카테고리의 다른 글
[JavaScript][프로그래머스] 문자열 정수의 합 (0) | 2023.06.06 |
---|---|
[JavaScript][코딩테스트] 첫 번째로 나오는 음수 (0) | 2023.06.06 |
[JavaScript][프로그래머스] - LVL.0 주사위의 개수 (0) | 2023.03.12 |
[JavaScript][프로그래머스] - LVL.0 가위 바위 보 (0) | 2023.03.12 |
[JavaScript][프로그래머스] - LVL.0 개미군단 (0) | 2023.02.11 |