알고리즘: 제일 작은 수 제거하기

Kyoorim LEE·2022년 12월 27일
0

알고리즘TIL

목록 보기
29/40

문제 설명

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

제한 조건

arr은 길이 1 이상인 배열입니다.
인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.

입출력 예

arrreturn
[4,3,2,1][4,3,2]
[10][-1]

풀이

Math.min()

주어진 숫자들 중 가장 작은 값을 반환함

var x = 10, y = -20;
var z = Math.min(x, y); // -20

splice()

배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
  • start: 배열의 변경을 시작할 인덱스
  • deleteCount: 배열에서 제거할 요소의 수
  • item1, item2,...: 제거 후 배열에 추가할 요소. 아무 요소도 지정하지 않으면 splice()는 요소를 제거하기만 함

solution

function solution(arr) {
    let min;
    
    if(arr.length === 1) return [-1];
    else if (arr.length > 1) {
        min = Math.min(arr)
        let index = arr.indexOf(min)
       arr.splice(index, 1) // 해당 인덱스에 있는 요소 1개만 제거하기
    } 
    return arr
}
profile
oneThing

0개의 댓글