[JS알고리즘_06] 제일 작은 수 제거하기

이강윤·2022년 7월 3일
0

JS알고리즘

목록 보기
6/28
post-thumbnail

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


풀이

function solution(arr) {
    let min = 1000
    if (arr.length === 1) return [-1]
    
    arr.map((item) => {
        if (item < min ) min = item
    })
    return arr.filter((item) => item !== min)
}
  1. 최소를 정해둔다.
  2. 배열의 개수가 하나일 때는 [-1] 을 리턴한다.
  3. 두개 이상일 때는 최솟값을 구해야 하기때문에 반복문을 이용하여 최소로 정해둔 값과 비교한 뒤 최소값에 반영한다.
  4. filter를 이용하여 그 최소값을 제거하고 return한다.

알고리즘, 코딩테스트 준비가 이번이 처음이다보니 레벨1도 괜히 복잡하게 생각하고 있었다.. 다른 사람의 풀이를 보고 넘나 충격적,, 저렇게 쉽게 풀 수 있는 것을 왜그랬지 싶고,,ㅎㅎ


다른 사람의 풀이

function solution(arr) {
    const min = Math.min(...arr);
    return arr.length !== 1 ? arr.filter(i => i !== min) : [-1]
}
profile
멋진 FE개발자가 될거야 ✌

0개의 댓글