코딩 테스트 풀이 🛠

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

엄성준 2023. 1. 17. 22:52

문제 설명

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

 

입출력 예

 

arr return
[4,3,2,1] [4,3,2]
[10] [-1]

 

나의 풀이

 

1
2
3
4
5
6
7
8
9
function solution(arr) {
    
    let answer
    
    arr.splice(arr.indexOf(Math.min(...arr)),1)
    arr.length <=1 ? answer = [-1] : answer = arr
        
    return answer
}
cs

 

문제를 풀며 느낀 점

 

- 먼저 오늘은 처음으로 splice()를 사용해 보았는데요 배열을 정렬하지 않고 제일 작은 값을 제거하기 위해서 splice(index, 1) arr에 index에 있는 위치의 값을 하나 제거하겠다 해서 arr.indexOf() 인덱스 위 위치를 찾아주는 함수의 인자값으로 Math.min(... arr) Math.min() 함수 안에 spread연산자를 통해서 뿌려진 arr값에서 최솟값을 찾은 뒤 indexOf를 통해 제일 작은 수 의 index위치를 알고 splice함수를 통해서 제거하였습니다. 그 후 만약 주어진 arr의 길이가 1보다 작거나 같다면 answer에 [-1]을 할당한 값을 return 하였고 아니라면 answer에 제일 작은 수가 제거된 배열 arr을 return 하였습니다.