SMALL
문제 설명
정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요. 두 값이 같을 경우 그 값을 return합니다.
제한사항
입출력 예
- 5 ≤ num_list의 길이 ≤ 50
- -9 ≤ num_list의 원소 ≤ 9
num_list result [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) {
const oddSum = num_list.filter((_,idx)=>!(idx%2)).reduce((a,c)=>a+c,0); // 홀수번째 원소들의 합
const evenSum = num_list.filter((_,idx)=>(idx%2)).reduce((a,c)=>a+c,0); // 짝수번째 원소들의 합
return evenSum >= oddSum ? evenSum : oddSum;
}
evenSum과 oddSum 변수로 각각 num_list 배열의 filter 메소드를 사용하여 인덱스 가 짝수인경우 값들의 합과 홀수인 경우의 값들의 합을 선언했다.
filter 메소드의 두번째 인자는 인덱스 값으로 !(idx%2) 는 인덱스 값이 짝수인 경우를 말한다.
이때 첫번째 입출력 예의 const evenSum = num_list.filter((_,idx)=>!(idx%2)) 는 [4, 6, 7] 인데
문제에서 가장 첫번째 원소를 1번 원소라고 했기 때문에 변수 명을 oddSum으로 두었다.
삼항연산자를 사용하여 짝수 번째 원소들의 합이 홀수 번째 원소들의 합보다 큰경우 evenSum을, 작은경우 oddSum을 반환하도록 했다.
LIST
'[코딩테스트] JavaScript > [코테] 프로그래머스' 카테고리의 다른 글
[프로그래머스 / JS ] Lv.0 / 181895 : 배열 만들기 3 (1) | 2025.01.12 |
---|---|
[프로그래머스 / JS ] Lv.0 / 120812 : 최빈값 구하기 (1) | 2025.01.12 |
[프로그래머스 / JS ] Lv.0 / 181898 : 가까운 1 찾기 (0) | 2025.01.08 |
[프로그래머스 / JS ] Lv.0 / 120891 : 369게임 (3) | 2025.01.08 |
[프로그래머스 / JS ] Lv.0 / 181896 : 첫 번째로 나오는 음수 (2) | 2025.01.07 |