문제 설명
정수 리스트 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]
반응형
'코딩테스트 > 자바스크립트' 카테고리의 다른 글
[1213] 코딩테스트 - programmers (0) | 2021.12.13 |
---|---|
[프로그래머스-javascript/level1] 김서방 찾기 (0) | 2021.05.26 |