연습장
26. 마지막 두 원소 본문
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 |