코딩테스트/자바스크립트

[코딩 기초 트레이닝] 마지막 두 원소(feat.구조분해할당)

문앵 2024. 6. 21. 14:39

문제 설명
정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요.

제한사항
2 ≤ num_list의 길이 ≤ 10
1 ≤ num_list의 원소 ≤ 9
입출력 예
num_list    result
[2, 1, 6]    [2, 1, 6, 5]
[5, 2, 1, 7, 5]    [5, 2, 1, 7, 5, 10]

 


입출력 예 설명
입출력 예 #1

마지막 원소인 6이 그전 원소인 1보다 크기 때문에 6 - 1인 5를 추가해 return합니다.
입출력 예 #2

마지막 원소인 5가 그전 원소인 7보다 크지 않기 때문에 5의 두 배인 10을 추가해 return합니다.

 


 

 

solution.js

 

내가쓴거

function solution(num_list) {
    var answer = [...num_list];
    let last = num_list.pop();
    let second = num_list.pop();
    
    last > second ? answer.push(last-second) : answer.push(2 * last);
    
    return answer;
}

 

 

 

다른 풀이

function solution(num_list) {
    const [a, b] = [...num_list].reverse();
    return [...num_list, a > b ? (a-b):a*2];
}

 

-> 구조분해 할당

[a,b,c] = [1,2,3,4,5,6,7];

이렇게 해주면 a,b,c 에 앞에서부터 하나씩 들어감. 뒷부분(4,5,6,7)은 할당 안됨

나머지를 한번에 할당하려면

 

[a,b,c,...rest] = [1,2,3,4,5,6,7]  // rest = [4,5,6,7]

 

 

반응형