IT/Algorithm

원소들의 곱과 합 (lv.0)

HJ:: 2023. 6. 8. 14:01
function solution(num_list) {
    
   const result1 = num_list.reduce((accumulator, currentvalue) => {
       return accumulator * currentvalue;    
   }, 1)
   
   const result2 = num_list.reduce((accumulator, currentvalue) => {
       return accumulator + currentvalue;    
   }, 0)
   
   return result1 < result2 ** 2 ? 1 : 0;
}

나는 콜백 함수와 초기값을 지정해주고 그 값들의 누적 계산값을 리턴해주는 .reduce()함수를 사용하였다.

곱을 구하는 구문은 초기값 1을 줬고, 합은 0을 주었다. 계산에 영향을 주지 않는 항등원이다.

 

 

function solution(num_list) {
    let accMul = 1
    let accSum = 0
    for (const num of num_list) {
        accMul *= num
        accSum += num
    }
    return accMul < accSum ** 2 ? 1 : 0
}

다른 분의 코드 풀이이다.

for(변수   of  리스트) {}  형태의 문법을 별로 사용하지 않았었는데 이렇게 사용하니

굉장히 코드가 단축된다는 걸 알았다.

물론 forEach 구문도 있다.