티스토리 뷰

문제 설명

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

 

풀이 과정

더보기

처음엔

//arr에서 가장 작은 수를 sort 해서 찾고
//arr에서 그 수를 pop해버리면 될듯
//만약 배열이 빈 배열이면 -1을 push해서 return 하고

 이렇게 생각했으나 arr의 순서가 바뀌면 안되었기 때문에 다른 방법을 생각했다.

//arr복사본에서 가장 작은 수를 sort 해서 찾고
//arr에서 그 수를 filter해버리면 될듯
//만약 배열이 빈 배열이면 -1을 push해서 return 하고

 

정답 코드

function solution(arr) {
    let newArr = [...arr]
    newArr.sort((a,b) => a-b)
    const filteredArr = arr.filter((e) => e !== newArr[0])
    if (Boolean(filteredArr.length) === false){
        return [-1]
    }
    return filteredArr
}

생각보다 쉽게 풀었다. 이제는 spread operator 사용이 익숙해진 것 같다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함