정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
splice() : 배열의 기존 요소를 삭제 또는 교체하거나 새 요소롤 추가하여 배열의 내용을 변경할 수 있다.
array.splice( 원하는 인덱스 값, 제거할 요소의 갯수, 추가할 요소1, 추가할 요소 2 ...)
더 자세히 알아보기
Math.min() : 주어진 숫자들 중 가장 작은 값을 반환한다.
Math.min([value1[, value2[, ...]]])
더 자세히 알아보기
indexOf() : 배열에서 지정된 요소를 찾을 수 있는 첫 번째(최초) 인덱스를 반환하고 존재하지 않으면 -1을 반환한다.
arr.indexOf(searchElement[, fromIndex])
더 자세히 알아보기
function solution(arr) {
var answer = [];
if (arr.length <= 1) { // 배열의 길이가 0 or 1 일 경우 -1 반환.
return [-1];
} else {
arr.splice(arr.indexOf(Math.min(...arr)), 1);
// 배열에서 가장 작은 요소를 찾고, 그것의 인덱스로 찾아서 하나 제거한다.
answer = arr; // 제거된 후 남은 배열을 반환.
}
return answer;
}
자바스크립트에서 제공하는 메서드를 이용하면 쉽게 풀 수 있는 문제였다. 하지만 그것을 모른다면 어떻게 풀어야 할지 막막한 문제가 된다. 이번 문제를 풀면서 몰랐던 메서드들을 좀 더 익히게 되는 계기가 되었다. 매번 느끼는 거지만, 공식문서는 너무 친절해서 좋다 😁