배열의 길이에 따라 다른 연산하기

정수 배열 arr과 정수 n이 매개변수로 주어집니다. arr의 길이가 홀수라면 arr의 모든 짝수 인덱스 위치에 n을 더한 배열을, arr의 길이가 짝수라면 arr의 모든 홀수 인덱스 위치에 n을 더한 배열을 return 하는 solution 함수를 작성해 주세요.

배열의 길이에 따라 다른 연산하기Lv.0

181868

https://school.programmers.co.kr/learn/courses/30/lessons/181854

해설

두 개의 파라미터를 받아들입니다: 배열 arr과 정수 n. 이 함수는 배열 arr의 각 요소에 대해 특정한 논리 연산을 수행하고 결과를 반환합니다.

  • Name
    let add = arr.length % 2 === 0 ? [0, n] : [n, 0];
    Type
    Description

    arr.length % 2 === 0는 주어진 배열의 길이가 짝수인지를 확인합니다.

    • 만약 배열의 길이가 짝수라면, add 배열에 [0, n]을 할당합니다. (짝수 길이일 때는 0을 더한 다음 n을 더하게 됩니다.)
    • 만약 배열의 길이가 홀수라면, add 배열에 [n, 0]을 할당합니다. (홀수 길이일 때는 n을 더한 다음 0을 더하게 됩니다.)
  • Name
    arr.map((val, idx) => val + add[idx % 2]);
    Type
    Description

    화살표 함수 (val, idx) => val + add[idx % 2]는 배열의 각 요소에 대해 다음 작업을 수행합니다.

    • idx % 2를 통해 현재 요소의 인덱스가 짝수면 0, 홀수면 1을 반환합니다.
    • add[idx % 2]는 짝수 인덱스에는 add[0] 값을, 홀수 인덱스에는 add[1] 값을 적용합니다.

연산은 배열의 길이에 따라 다르게 처리되며, 짝수 길이일 때는 0을 활용하고, 홀수 길이일 때는 입력된 정수 n을 활용합니다.

배열의 길이에 따라 다른 연산하기

function solution(arr, n) {
    let add = arr.length % 2 === 0 ? [0, n] : [n, 0];
    return arr.map((val, idx) => val + add[idx % 2]);
}