본문 바로가기
개발/알고리즘

[프로그래머스][LEVEL1] 제일 작은 수 제거하기

by ISA(류) 2021. 8. 18.

# 문제 원문

 

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.제한 조건

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

입출력 예

arr /  return

[4,3,2,1] [4,3,2]
[10] [-1]

 

# 문제 풀이

입력 받은 arr에서 가장 작은 수를 구하고 제거한 배열을 반환하는 간단한 문제. 빈배열일 경우 -1를 담아서 반환하고 무조건 하나를 제거하기에 arr.length가 1 이상인지 먼저 확인후 arr에서 가장 작은 수를 찾아서 제거 해주면된다.

이런 간단한 문제들도 포스팅 하려니까 귀찮긴한데.. 글쓰는 루틴을 유지하는게 더 중요하다고 생각해서 한다. 난 귀찮은걸 싫어하니까 이런식으로라도 노력해야지..

# 솔루션 플로우

1. 입력 받은 arr의 length가 1 이상인지 확인한다. (2, 3)

2. 1이거나 이하일 경우 바로 [-1]을 반환한다.

3. 이상일 경우 가장 작은 수를 구한다.

4. arr를 순회하며 가장 작은 수를 제외한 result를 얻는다.

5. 얻어진 result를 반환한다.

1. API를 활용한 풀이

function solution(arr) {
    const min = Math.min(...arr);
    return arr.length > 1 ?
        arr.filter((num) => num !== min) :
        [-1];
}
반응형