정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
arr | return |
---|---|
[4,3,2,1] | [4,3,2] |
[10] | [-1] |
function solution(arr) {
var answer = [];
let min = Number.MAX_SAFE_INTEGER; // 최초 큰값으로 min 산정
let minIndex = 0;
// for 문으로 min 값 찾기
for (let i = 0; i<arr.length; i++) {
if(arr[i] < min) {
min = arr[i]
minIndex = i;
}
}
// splice() 메서드로 min 값 배열에서 제거하기.
arr.splice(minIndex,1)
answer = arr;
// 삼항연산자를 활용해서 배열이 비어있다면 -1
// 아니라면 min 제거된 arr 호출
return answer.length < 1 ? [-1] : arr;
}
다른 사람의 풀이 중 Math 내장객체와 전개연산자 그리고 배열 메서드를 활용하여
훨씬 간결하게 해결한 풀이가 있었다.
function solution(arr) {
arr.splice(arr.indexOf(Math.min(...arr)),1);
if(arr.length<1)return[-1];
return arr;
}
Math 내장객체를 더욱 활용해보자.
전개연산자 복습하고 활용 방안을 더욱 고민해보자.