코딩테스트/Programmers (프로그래머스)

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

지윤공원🌳 2021. 4. 9. 00:51
728x90

📖 문제설명

정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요.

단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요.

예를 들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 return하고, [10]이면 [-1]을 return합니다.

 

✔️ 제한조건

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

 


💻 나의 코드

function solution(arr) {
    arr.splice(arr.indexOf(Math.min.apply(null, arr)), 1);
    return (!arr.length)?[-1]:arr;
}

 

 

🎤 코드 설명

Math.min.apply(null, arr)로 arr 중 가장 작은 값을 알아냅니다. 

indexOf로 가장 작은 값의 위치를 splice의 첫 번째 인자값에 넣고, 두 번째 인자값에는 1을 넣어줍니다. 

return문에서는 만약 arr.length의 값이 0이면 true, 0이상의 정수이면 false값이 return되게 합니다. 

 

📜 채점 결과

정확성: 100.0

합계: 100.0 / 100.0

 

💬 배운 것

  • splice함수로 배열의 요소를 삭제할 수 있다.    ex) 배열.splice(삭제할 요소의 인덱스, 1);
  • if~else문 대신 삼항 연산자를 사용할 수 있다.
  • apply(this로 setting하고 싶은 객체, 배열);       this를 별도로 setting하지 않을 시 default는 window객체이다.

 

 

 

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

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

programmers.co.kr

728x90