코딩 테스트
[프로그래머스 Level 1] 제일 작은 수 제거하기
y_flm
2025. 3. 21. 12:04
문제:
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요.
단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요.
예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
제한 조건
- arr은 길이 1 이상인 배열입니다.
- 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
입출력 예
1) arr = [4,3,2,1], return = [4,3,2]
2) arr = [10], return = [-1]
문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/12935
풀이보기
더보기
function solution(arr) {
let array = [...arr];
let min = Math.min(...arr);
if(array.length === 0) return [-1];
for(let i = 0; i < array.length; i++) {
if(array[i] === min) {
array.splice(i, 1);
return array;
}
}
}
정말 어이없는 문제였다 .. 분명 빈 배열과 10일 때 -1을 리턴하래서 그렇게 했었는데
알고보니 문제 오류였다 ㅎㅎ ; 그냥 빈 배열일 때만 -1을 리턴하면 된다.
이것 때문에 한참 시간을 버렸다 ㅎ;
일단 배열에서 최솟값을 찾아 저장해주고, 빈 배열을 먼저 확인하여 리턴해준다.
빈 배열이 아니라면 배열에서 최솟값과 같은 값을 찾고, splice 메서드를 통해 해당 인덱스를 삭제하고 리턴해주면 끝!