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

승헌·2022년 3월 5일
0

프로그래머스 Level 1

목록 보기
36/51

(문제링크)

문제

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

제한사항

  • arr은 길이 1 이상인 배열입니다.
  • 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.

입출력 예

arrreturn
[4,3,2,1][4,3,2]
[10][-1]

풀이

문제 풀기에 앞서,
제한사항 중 2번은 인덱스가 다르면 그 인덱스의 요소도 다르다. 즉, 중복값이 없다는 의미이다.
따라서, 해당 문제는 가장 작은 수가 여러개일 경우를 고려하지 않아도 된다.

  1. 최솟값을 구한다.
  2. 최솟값인 요소를 제거한다.
  3. 배열이 비었다면 [-1]을 반환하고 아니라면 배열을 반환한다.

소스코드

function solution(arr) {
    let min = Math.min(...arr);
    arr.splice(arr.indexOf(min), 1);
    return arr.length === 0 ? [-1] : arr;
}
profile
https://heony704.github.io/ 이리콤

0개의 댓글