목차
반응형
문제 설명
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요.
단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요.
예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
제한 조건
- arr은 길이 1 이상인 배열입니다.
- 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
나의 풀이
function solution(arr) {
arr.splice(arr.indexOf(Math.min(...arr)), 1);
if (arr.length < 1) return [-1];
return arr;
}
마무리
배열 안에 있는 정수 중 가장 작은 수를 제거한 배열을 반환하는 문제였다.
처음에는 배열을 정렬하고 가장 작은 수를 제거해서 배열을 반환 해야 하는 줄 알았다.
그래서 sort() reverse() 로 정렬 하고 맨 뒤에 요소가 가장 작을테니 pop()으로 제거한 후 반환 했다.
하지만 문제의 요점은 그게 아니었다. 배열의 정렬은 그대로 둔 채로 가장 작은 수만 제거하고 그대로 반환 하는 것이었다.
그래서 가장 작은 수를 찾는 Math.min() 와 배열의 모든 수를 넣기 위해 스프레드 문법 ... 를 사용했다.
splice()로 가장 작은수와 indexOf()를 사용해서 배열 내의 가장 작은 수만 제거 할 수 있었다.
문제의 조건과 요점을 파악하는 것도 중요하다고 생각했다.
반응형