연습장

26. 마지막 두 원소 본문

프로그래머스/0단계

26. 마지막 두 원소

js0616 2023. 6. 19. 22:46

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

 

제한사항

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


배열의 마지막 원소와 마지막 바로 전 원소 를 비교하는 문제이다. 

마지막원소의 인덱스값은 num_list.length - 1 이라 볼 수 있다.

 

 num_list[num_list.length]   배열에 새로 추가 할 위치 

 num_list[num_list.length-1] 배열의 마지막 위치

 num_list[num_list.length-2] 배열의 마지막 전 위치  

 

삼항연산자로 해결하였다. 

새 위치 = 마지막 > 마지막전 ? 마지막 - 마지막전 : 마지막*2


function solution(num_list) {
    num_list[num_list.length]= num_list[num_list.length-1] > num_list[num_list.length-2]  

? num_list[num_list.length-1]  - num_list[num_list.length-2]  : num_list[num_list.length-1] * 2 
    return num_list
}


다른사람풀이

function solution(num_list) {
    const [a, b] = [...num_list].reverse();
    return [...num_list, a > b ? (a-b):a*2];
}

 

 

arr = [ . . . ]  // 임의의 배열

 

arr.reverse(); // 원본 배열이 뒤집어짐  sort 랑 비슷한 느낌이다.

arr.sort()  // 원본 배열이 정렬됨.

 

let reverse = [...arr].reverse()  // 사용시

arr // 원본 배열 유지

reverse // 뒤집힌 배열 저장 

 

let [a , b ] = arr // a = arr[0] , b = arr[1]  //  reverse 로 뒤집어서 마지막 값과 그 전 값을 가져오고

 

[...arr , x ] //  spread 연산자를 통해 뒤에 추가할 공간을 만들고  삼항연산자로 추가할 값을 뽑아낸 코드로 보인다.

 

 

파이썬이면 arr[-1] 로 맨 뒤의 인덱스를 가져올 수 있는데 ...

'프로그래머스 > 0단계' 카테고리의 다른 글

28. 수 조작하기 2  (0) 2023.06.20
27. 수 조작하기 1  (0) 2023.06.20
25. 이어 붙인 수  (0) 2023.06.19
24. 원소들의 곱과 합  (0) 2023.06.19
23. 주사위 게임 2  (0) 2023.06.19