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

morecodeplease·2024년 3월 19일
0

프로그래머스 Lv 1

목록 보기
19/19
post-thumbnail

🌭 문제 설명

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

🍗 제한 사항

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

🎁 입출력 예시


😎 나의 풀이

function solution(arr) {;
  const Minnumber = Math.min(...arr); 
  arr.splice(arr.indexOf(Minnumber), 1);
  return arr.length === 0 ? [-1] : arr;
}
  1. 기존 arr에서 spread로 최솟값을 Minnumber에 넣어준다.
  2. arr에서 해당 인덱스의 요소를 제거하기 위해 splice와 indexof를 이용해서 minnumber의 index를 해당 배열에서 삭제한다.
  3. arr의 길이가 0이면 [-1] return , 그렇지 않으면 요소가 삭제된 arr return

🧵 다른 풀이

function solution(arr) {
    const min = Math.min(...arr);
    return arr.length !== 1 ? arr.filter(i => i !== min) : [-1]
}
  1. 기존 arr에서 spread로 최솟값을 변수 min에 할당한다.
  2. arr이 비어 있지 않으면 arr을 filter해서 인덱스값과 min값이 같지 않은 값(최소값을 제거한)값을 return하고 아니면 [-1]을 return한다.

문제를 풀 때 filter메서드를 쓴적이 한번도 없었던 것 같은데 filter를 사용을 많이 해봐야겠다.

profile
Everyday's a lesson

0개의 댓글