findDifference.js (8kyu 93)
Codewars 알고리즘 풀이
Problem
- You must find the difference of the cuboids’ volumes regardless of which is bigger.
- 어느 것이 더 큰지에 관계없이, 직육면체(cuboid)의 용량(volume) 차이를 반환한다.
Solution 01
function findDifference(arr1, arr2) {
let result1 = arr1[0];
let result2 = arr2[0];
for (let i = 1; i < arr1.length; i++) {
result1 *= arr1[i];
}
for (let i = 1; i < arr2.length; i++) {
result2 *= arr2[i];
}
return Math.abs(result1 - result2);
}
findDifference([], []); // 7 (8 - 1)
findDifference([], []); // 2 (8 - 6)
findDifference([], []); // 19 (27 - 8)
Math.abs()
메소드주어진 숫자의 절대값(absolute value)을 반환한다.
Solution 02
function findDifference(arr1, arr2) {
let result1 = arr1.reduce((total, i) => total * i);
let result2 = arr2.reduce((total, i) => total * i);
return Math.abs(result1 - result2);
}
findDifference([], []); // 7 (8 - 1)
findDifference([], []); // 2 (8 - 6)
findDifference([], []); // 19 (27 - 8)
reduce()
메소드배열을 하나의 값으로 줄이고, 그 값을 반환한다.