SMALL
문제 설명
정수 리스트 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합니다.
문제 풀이
배열의 마지막 원소와 그 전 원소를 slice로 복사하여 변수로 지정한다.
마지막 원소가 그 전 원소보다 크면 배열의 끝에 마지막원소 - 그 전 원소 값을 push하고,
작으면 배열의 끝에 마지막 원소의 2배 값을 push하여 반환한다.
function solution(num_list) {
const lastNum = num_list.slice(-1); // 마지막 원소 값
const prevNum = num_list.slice(-2,-1); // 마지막 1개 전 원소 값
if(lastNum > prevNum){
num_list.push(lastNum - prevNum)
}else{
num_list.push(lastNum * 2)
}
return num_list;
}
slice로 복사하는 방법도 있지만 아래와 같이 변수를 length를 이용하여 값을 추출하는 방법도 있다.
const lastNum = num_list[num_list.length-1];
const prevNum = num_list[num_list.length-2];
LIST
'[코딩테스트] JavaScript > [코테] 프로그래머스' 카테고리의 다른 글
[프로그래머스 / JS 코테] Lv.0 / 181928 : 이어 붙인 수 (0) | 2025.01.07 |
---|---|
[프로그래머스 / JS 코테] Lv.0 / 181939 : 더 크게 합치기 (0) | 2025.01.07 |
[프로그래머스 / JS 코테] Lv.0 / 181941 : 문자 리스트를 문자열로 변환하기 (0) | 2025.01.06 |
[프로그래머스 / JS 코테] Lv.0 / 181942 : 문자열 섞기 (0) | 2025.01.06 |
[프로그래머스 / JS 코테] Lv.0 / 181943 : 문자열 겹쳐쓰기 (0) | 2025.01.06 |