본문 바로가기
개발 공부/알고리즘 개념+문제풀이

[프로그래머스 1단계] 가장 작은수 제거하기 with javascript

by 크롱이크 2021. 6. 23.

문제설명

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

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

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

 

주의사항

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

입출력예시

코드

function solution(arr) {
    if(arr.length === 0) return -1
    if(arr.length === 1) return [-1]
    let minIdx = arr.indexOf(Math.min(...arr));
    
     arr.splice(minIdx,1)
    return arr;
}

 

해석

가장 작은 수를 어떻게 판별하냐가 중요했다.

우선 빈배열이거나 하나의 요소만 있는 배열일 경우 if문으로 만들어 리턴해주고,

가장 작은 수의 인덱스를 찾아 변수에 할당했다.

splice를 사용하여 그 위치에서 하나를 지워주고,

배열을 리턴한다.

 

한줄평

생각보다 시간이 오래걸렸다. 배열에 math메소드를 사용하기 위해선 spread를 사용해야했고,

splice 메소드 사용법도 많이 헷갈렸다.

 

링크

https://programmers.co.kr/learn/courses/30/lessons/12935

 

 

 

반응형

댓글