728x90
![[JavaScript] 제일 작은 수 제거하기 [JavaScript] 제일 작은 수 제거하기](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
문제
정수를 저장한 배열 arr에서 가장 작은 수를 제거한 배열을 반환하는 함수를 작성하라.
단, 반 하려는 배열이 빈 배열인 경우엔 [-1]을 반환한다.
조건
• arr는 길이 1 이상인 배열이다.
• 인덱스 i, j에 대해 i != j면, arr[i] != arr[j]이다.
예시
arr | return |
[4, 3, 2, 1] | [4, 3, 2] |
[10] | [-1] |
나의 풀이
function solution(arr) {
const min = arr.indexOf(Math.min(...arr));
arr.splice(min, 1);
return arr.length ? arr : [-1];
}
풀이 방법
먼저 indexOf()와 Math.min() 함수를 사용해서 제일 작은 값의 index를 구해온다.
그리고 splice() 함수로 구한 인덱스 자리부터 length 1만큼 제거한다.
제거한 arr의 length가 있다면 arr를 반환하고 아닌 경우 [-1]을 반환한다.
이 문제를 처음에 풀 때는 arr.sort().reverse()로 역순 정렬한 후 pop() 함수로 끝의 값을 제거했다.
하지만 최소값을 찾아서 제거한 배열을 반환하는 문제라서 위 방법으로 하면 배열의 정렬을 바꿔버려서 답이 아니었다.
728x90
'🧬알고리즘 > Programmers' 카테고리의 다른 글
[JavaScript] 행렬의 덧셈 (0) | 2024.08.21 |
---|---|
[JavaScript] 핸드폰 번호 가리기 (0) | 2024.08.21 |
[JavaScript] 정수 제곱근 판별 (0) | 2024.08.20 |
[JavaScript] 자연수 뒤집어 배열로 만들기 (0) | 2024.08.19 |
[JavaScript] 자릿수 더하기 (0) | 2024.08.19 |
댓글