프로그래머스 Lv.0 마지막 두 원소

J·2023년 7월 11일
0

programmers

목록 보기
32/33

문제 링크

마지막 두 원소


문제 설명

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

제한 사항

  • 2 ≤ num_list의 길이 ≤ 10
  • 1 ≤ num_list의 원소 ≤ 9

입출력 예

num_listresult
[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합니다.

풀이

  1. 마지막 원소와 그 전 원소 변수화
  2. 마지막 원소가 그 전 원소보다 크면 두 숫자의 차이를 계산하고 그렇지 않으면 원소의 두 배 값을 구함
  3. 계산된 num_list에 푸시 후 반환

코드

function solution(num_list) {
    const lastNum = num_list.slice(-2)[1];
    const lastPreNum = num_list.slice(-2)[0];
    const result = lastNum > lastPreNum ? lastNum - lastPreNum : lastNum * 2;
    
    num_list.push(result);
    return num_list;
}

다른 사람의 코드

function solution(num_list) {
    const [a, b] = [...num_list].reverse();
    return [...num_list, a > b ? (a-b):a*2];
}
  • num_list 배열을 복사 후 뒤집어 마지막 원소와 그 전 원소를 각각 a, b를 할당해 코드를 줄임
profile
벨로그로 이사 중

0개의 댓글

관련 채용 정보