TIL

TIL 20241007 (제일 작은 수 제거하기 - 알고리즘)

j-coder 2024. 10. 7. 20:18

 

제일 작은 수 제거하기

 

배열에서 가장 작은수를 찾아서 제거를 하는데 배열이 빈 배열이 되는 경우에는 -1이 리턴이 되어야한다.

배열의 길이가 1인 경우에는 -1을 바로 리턴하고 1 보다 클때는 가장 작은수를 찾아서 제거해야한다.

 

코드

function solution(arr) {
    if (arr.length === 1) return [-1];
    
    let min = 0;
    
    for (let i = 1; i < arr.length; i++) {
        if (arr[i] < arr[min]) {
            min = i;
        }
    }
    
    arr.splice(min, 1);
    
    return arr;
}

 

풀이

    if (arr.length === 1) return [-1];

 

배열의 길이가 1인 경우 -1을 리턴( 리턴후 코드 종료)

 

 let min = 0;

 

 

가장 작은수를 저장할 변수 min 초기화

 

 for (let i = 1; i < arr.length; i++) {
        if (arr[i] < arr[min]) {
            min = i;
        }
    }

 

최솟값을 찾는 반복문

i는 1부터 배열 arr의 길이 -1 까지 돌아간다.

arr의 i 번째 수가 arr의 min보다 작으면 min을 i로 업데이트

 

arr.splice(min, 1);
    
    return arr;

 

arr.splice(제거할 시작 위치, 제거할  개수)

arr 배열의 min부터 1개 제거 ( min 만 제거)

min을 제거한 arr 배열 리턴

 

 

splice 내장함수 이용해 알고리즘을 해결했다.