문제 설명
문제 풀이
function solution(arr) {
const res = arr.splice(arr.indexOf(Math.min(...arr)), 1);
return arr.length > 1 ? arr : [-1];
}
먼저 과정을 적어보았다.
- 가장 작은 수 찾기
- 가장 작은 수의 위치 찾기
- 가장 작은 수를 제거한 배열 반환하기
- 만약 빈배열일 경우 -1을 리턴하기
1. 가장 작은 수 찾기
- Math.min()과 스프레드 연산자를 활용하였다.
Math.min(...arr)
➡️ 가장 작은 수가 출력된다.
2. 가장 작은 수의 위치 찾기
- indexOf()를 활용하였다.
string.indexOf(검색하고 싶은 문자열 [, 검색을 시작할 위치])
3. 가장 작은 수를 제거한 배열 반환하기
- splice()는 특정 인덱스를 제거한 배열을 반환한다.
arr.splice(시작 인덱스, 제거할 값의 개수)
indexOf()로 찾은 가장 작은 수의 인덱스와 제거할 개수인 1을 넣어 가장 작은 수를 제거한 배열을 반환하였다.
4. 만약 빈 배열일 경우 -1을 리턴하기
- 삼항 연산자를 사용해 arr의 길이가 1보다 클 경우 arr를 아닐 경우 [-1]을 리턴하도록 적어주었다.
이렇게 여러 함수들을 중첩하여 사용하니 너무 헷갈렸다 😂
그래도 다음에 비슷한 문제가 나오면 해결할 수 있을 것 같다