Development/알고리즘

[프로그래머스 | Javascript] Lv.0 홀짝에 따라 다른 값 반환하기

레오나르도 다빈츠 2023. 10. 9. 14:50

 

 

🗝 내가 푼 코드

function solution(n) {
    const calculator = {
        'even': (list) => list.reduce((acc, cur) => acc += cur * cur, 0),
        'odd': (list) => list.reduce((acc, cur) => acc += cur, 0)
    }

    const 홀짝판단값 = n % 2 === 0 ? 0 : 1
    const list = Array(n).fill(1).map((obj, index) => obj + index).filter((obj) => obj % 2 === 홀짝판단값)
    
    return calculator[홀짝판단값 ? 'odd' : 'even'](list)
}

 

홀수, 짝수 list를 만들 때 for문 돌리면 쉽겠지만.. 다른 방법을 고민해보았다.

새로 써보는 함수라 list 만드는 부분에서 시간이 좀 걸렸다.

 

 

[깨달음 1]

언젠가 사용해봐야겠다 생각했던 Array.fill()을 사용해보기로 했다.

fill을 0으로 채웠더니 0부터나와서 깨달음을 얻고(😮) 1로 채웠다.

 

[깨달음 2]

map으로 obj % 2 === 홀짝판단값을 return하면 될거라 생각했으나 boolean 값만 뽑혀나왔다.

이것저것 츄라이해보다가 생각해보니 map으로 배열을 채웠으니 다시 값을 빼오는 과정이 필요하다는 걸 깨달았다. (❗️)

map안에서 홀짝으로 정제할 수는 없을까??? 시간날 때 해보자...