Level 0 ) 마지막 두 원소

Doozuu·2023년 5월 10일
0

프로그래머스 (JS)

목록 보기
112/183

문제 설명

정수 리스트 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]

풀이

잘 풀리긴 하지만 가독성이 별로 좋지 않다.

function solution(num_list) {
    let lastIdx = num_list.length-1;
    num_list[lastIdx] > num_list[lastIdx-1] ? num_list.push(num_list[lastIdx]-num_list[lastIdx-1]) : num_list.push(num_list[lastIdx]*2);
    return num_list;
}

신박한 방법

배열을 뒤집어서 맨 앞의 두 원소를 a, b로 저장(실제로는 a가 마지막 원소, b가 마지막 바로 전 원소)
기존 배열과 뒷 부분을 합쳐준다.

function solution(num_list) {
    const [a, b] = [...num_list].reverse();
    return [...num_list, a > b ? (a-b):a*2];
}
profile
모든게 새롭고 재밌는 프론트엔드 새싹

0개의 댓글