[프로그래머스 | Javascript] 제일 작은 수 제거하기

박기영·2022년 9월 12일
0

프로그래머스

목록 보기
26/126

solution

function solution(arr) {
    // arr의 길이가 1이라면 가장 작은 수가 자기 자신이므로
    // 삭제하면 길이가 0이되어, [-1]을 반환해야한다.
    if(arr.length === 1){
        return [-1];
    } else {
        // arr 배열의 최소값을 구한다.
        let min = Math.min(...arr);
        
        // min 값을 활용하여 해당 값의 인덱스를 구한다.
        let index = arr.indexOf(min);
        
        // splice는 원본 배열을 변화시킨다.
        // index번 인덱스부터 1개의 원소를 삭제한다.
        arr.splice(index, 1);
        
        return arr;
    }
}

문제의 두 번째 조건인

인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.

최솟값이 여러 개가 나올 수 없다는 것을 간접적으로 알려준다.
값이 중복되지 않으면 최솟값은 하나일 수 밖에 없기 때문이다.
그래서 indexOf를 사용해도 문제가 없었다.

profile
나를 믿는 사람들을, 실망시키지 않도록

0개의 댓글