프로그래머스 Lv.1 제일 작은 수 제거하기

J·2023년 6월 14일
0

programmers

목록 보기
17/33

문제 링크

제일 작은 수 제거하기


문제 설명

정수를 저장한 배열, 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]

풀이

  1. 가장 작은 수 구하기 Math.Min(...arr) 를 통해 배열에서 가장 작은 숫자 반환.
  2. 가장 작은 수의 인덱스 구하기 arr.indexOf(min_num) indexOf() 메서드는 min_num이 처음 나타나는 인덱스를 반환.
  3. splice 메서드를 사용해 배열의 가장 작은 수 제거.
  4. 배열의 길이가 1 이상이면 배열을 아니라면 [-1] 출력.

코드

function solution(arr) {
    let min_num = Math.min(...arr);
    let index = arr.indexOf(min_num);
    arr.splice(index, 1);
    return arr.length > 1 ? arr : [-1];
}

다른 사람의 코드

function solution(arr) {
    const min = Math.min(...arr);
    return arr.length !== 1 ? arr.filter(i => i !== min) : [-1]
}
  • 나와 다르게 arr의 길이가 1이 아닐 경우 바로 수정된 배열을 반환함.
  • 수정된 배열은 arr에 filter 메서드를 통해 가장 작은 숫자룰 제거한 나머지 요소가 담긴 배열임.

생각

  • 짧고 읽기에도 편한 식을 만들자 ~_~
profile
벨로그로 이사 중

0개의 댓글

관련 채용 정보