가수면

[Javascript] 제일 작은 수 제거하기 본문

CS/코딩 테스트

[Javascript] 제일 작은 수 제거하기

니비앙 2022. 11. 23. 00:54

문제 설명

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

제한 조건
  • arr은 길이 1 이상인 배열입니다.
  • 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
입출력 예
[4,3,2,1] [4,3,2]
[10] [-1]

 


처음 썼던 코드

function solution(arr) {
    var minNum = Math.min(...arr)
    let search = arr.indexOf(minNum)
    
    return arr.length <= 1 ? [-1] : arr.splice(search, 1)
}

자꾸 splice하고 나머지 요소들이 출력되어야하는데 splice 대상 요소만 출력되어서 한참을 헤매다가 splice 메소드를 다시 읽어보니 원본 값을 건드리는 파괴적 처리라 위로 빼고 원본 값인 arr을 출력하니 제대로 적용되었다.

 

최종 코드

function solution(arr) {
    var minNum = Math.min(...arr)
    let search = arr.indexOf(minNum)
    arr.splice(search, 1)
        
    return arr.length <= 1 ? [-1] : arr
}

 

 

Math.min()

최솟값 찾기

Math.max()

최댓값 찾기

Comments