본문 바로가기
알고리즘 공부하기

프로그래머스 1단계 - 제일 작은 수 제거하기

by 코딩 척척학사 2022. 11. 13.
728x90

프로그래머스 1단계 - 제일 작은 수 제거하기

🍞 문제 설명

정수를 저장한 배열, 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]

🍞 문제 풀이

이번 문제는 어떻게 해야 할지 감이 안잡혀서 많이 헤맨 것 같습니다. for in문으로 가장 작은 수를 찾고, 해당하는 수를 splice로 배열에서 잘라냈습니다.

function solution(arr) {
  let num = 0;
  if(arr.length == 1){
      arr = [-1];
  } else {
      for( x in arr){
          arr[num] > arr[x] ? num = x : num;
      }
      arr.splice(num, 1)
  }
  return arr;
}

🍞 다른 이의 풀이

Math.min()을 쓰면 이렇게 간단한 것을…

function solution(arr) {
  arr.splice(arr.indexOf(Math.min(...arr)),1);
  if(arr.length<1)return[-1];
  return arr;
}
728x90

댓글


HTML이 적힌 썸네일 이미지
CSS가 적힌 썸네일 이미지
JAVASCRIPT가 적힌 썸네일 이미지

JAVASCRIPT

자세히 보기