코딩테스트/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