[프로그래머스] Lv.1 - 제일 작은 수 제거하기(splice, indexOf, Math.min)

dev.galim·2023년 8월 30일
0

문제 설명

문제 풀이

function solution(arr) {
    const res = arr.splice(arr.indexOf(Math.min(...arr)), 1);
    return arr.length > 1 ? arr : [-1];
}

먼저 과정을 적어보았다.

  1. 가장 작은 수 찾기
  2. 가장 작은 수의 위치 찾기
  3. 가장 작은 수를 제거한 배열 반환하기
  4. 만약 빈배열일 경우 -1을 리턴하기

1. 가장 작은 수 찾기

  • Math.min()과 스프레드 연산자를 활용하였다.
Math.min(...arr)

➡️ 가장 작은 수가 출력된다.

2. 가장 작은 수의 위치 찾기

  • indexOf()를 활용하였다.
    string.indexOf(검색하고 싶은 문자열 [, 검색을 시작할 위치])

3. 가장 작은 수를 제거한 배열 반환하기

  • splice()는 특정 인덱스를 제거한 배열을 반환한다.
    arr.splice(시작 인덱스, 제거할 값의 개수)
    indexOf()로 찾은 가장 작은 수의 인덱스와 제거할 개수인 1을 넣어 가장 작은 수를 제거한 배열을 반환하였다.

4. 만약 빈 배열일 경우 -1을 리턴하기

  • 삼항 연산자를 사용해 arr의 길이가 1보다 클 경우 arr를 아닐 경우 [-1]을 리턴하도록 적어주었다.

이렇게 여러 함수들을 중첩하여 사용하니 너무 헷갈렸다 😂
그래도 다음에 비슷한 문제가 나오면 해결할 수 있을 것 같다

profile
열심히 해볼게요

0개의 댓글