[프로그래머스] 홀수 vs 짝수

백승연·2024년 1월 5일
0

프로그래머스 - Lv. 0

목록 보기
49/60
post-thumbnail

🗒️ 문제

정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요. 두 값이 같을 경우 그 값을 return합니다.


제한 사항

  • 5 ≤ num_list의 길이 ≤ 50
  • -9 ≤ num_list의 원소 ≤ 9

입출력 예

num_listresult
[4, 2, 6, 1, 7, 6]17
[-1, 2, 5, 6, 3]8

입출력 예 설명

입출력 예 #1

  • 홀수 번째 원소들의 합은 4 + 6 + 7 = 17, 짝수 번째 원소들의 합은 2 + 1 + 6 = 9 이므로 17을 return합니다.

입출력 예 #2

  • 홀수 번째 원소들의 합은 -1 + 5 + 3 = 7, 짝수 번째 원소들의 합은 2 + 6 = 8 이므로 8을 return합니다.

🖋️ 나의 풀이

function solution(num_list) {
    let odd = [];
    let even = [];
    
    num_list.map((el, index) => {
        index % 2 == 0 ? odd.push(el) : even.push(el);
    });
    
    let oddSum = odd.reduce((a, b) => a + b)
    let evenSum =  even.reduce((a, b) => a + b)
    
    return Math.max(oddSum, evenSum);
}

💡 다른 사람들의 풀이

# 1

function solution(num_list) {
    let even = 0;
    let odd = 0

    num_list.map((v, idx) => {
        !(idx % 2) ? even += v : odd += v; 
    })

    return odd > even ? odd : even; 
}

# 2

function solution(num_list) {
    return Math.max(...num_list.reduce(([o, e], c, i) => i % 2 ? [o + c, e] : [o, e + c], [0, 0]));
}



📝 모르는 내용 찾아보기

profile
공부하는 벨로그

0개의 댓글