글 작성자: 망고좋아
반응형

 

🎯 제일 작은 수 제거하기

📁 문제 출처

 

코딩테스트 연습 - 제일 작은 수 제거하기

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

programmers.co.kr

 

💡 생각

  • 배열에서 가장 작은 수 찾기 -> Math.max.apply(null, arr)사용
    • apply란?
      • this 값과 배열 (또는 유사 배열 객체)로 제공되는 arguments로 함수를 호출한다.
      • 개발할 때는 파라미터를 많이 보내면 안 된다. apply를 사용하면 최소의 파라미터를 사용할 수 있다.
      • 첫 번째 파라미터가 null인 이유는 메서드 안의 this는 해당 스코프의 부모 스코프의 객체를 바라보기 때문에 최상위 스코프인 window객체를 바라본다. 따라서 this를 받고 싶지 않기 위해 null을 작성해준다.
      • 두 번째 파라미터는 배열을 사용!
  • 배열에서 삭제 -> filter 함수 사용

 

🛠 나의 코드

function solution(arr) {
    let minNum = Math.min.apply(null, arr);

    let answer = arr.filter((el) => el !== minNum);

    if (answer.length === 0) {
        answer.push(-1)
    }

    return answer;
}

 

다른 풀이

function solution(arr) {
    let minNum = Math.min(...arr);

    let answer = arr.filter((el) => el !== minNum);

    if (answer.length === 0) {
        answer.push(-1)
    }

    return answer;
}
  • Math.min.apply(null, arr) 대신 전개 연산자 사용

 

✔️ 배운 점 및 주의할 점

  • 이전까지는 파이썬 알고리즘 풀다가 JS로 다시 풀고 있는데 원래 알고 있는 개념도 다시 확인하고 자세하게 공부할 수 있어서 재밌다.

 

📌 참고

 
반응형