정수 리스트 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 해주고
그 이전 요소의 인덱스는 마지막 인덱스에서 한번더 -1 해주기로 했다.
물론 이 문제에서는 전달받은 배열의 요소가 변하는 상황이 없어서, 전체길이에서 -2를 해도 되지만, 안전하게 마지막 요소에서 -1을 해주는 방법을 선택했다.
function solution(num_list) {
let answer = num_list.map(item => item);
const lastIndex = answer.length - 1;
const prevIndex = lastIndex - 1;
let minus = answer[lastIndex] - answer[prevIndex];
let double = answer[lastIndex] * 2;
answer[lastIndex] > answer[prevIndex] ? answer.push(minus) : answer.push(double)
return answer;
}
그리고 원본 배열을 최대한 안건드리는게 좋으므로 전달받은 배열을 map을 통해 그대로 똑같은 값으로 새 배열을 만든 후 진행했다.
통과!