마지막 두 원소

도비김·2024년 2월 23일
0
문제 설명

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

    a = num_list[num_list.length-1]
    b = num_list[num_list.length-2]
    var answer = a>b? num_list.concat(a-b) : num_list.concat(a*2);
    return answer;

concat은 병합! push가 더 나을듯하다.

다른풀이

	const [a, b] = [...num_list].reverse();
    return [...num_list, a > b ? (a-b):a*2]; //성능이 안좋다..?

	const numlen = num_list.length;
    if(num_list[numlen-2] < num_list[numlen-1]) 
        num_list.push(num_list[numlen-1] - num_list[numlen-2])
    else num_list.push(num_list[numlen-1]*2)
    return num_list;

	//at()으로 간편하게!!
	const solution=n=>[...n,n.at(-1)>n.at(-2)?n.at(-1)-n.at(-2):n.at(-1)*2];
profile
To Infinity, and Beyond!

0개의 댓글