공부/코딩테스트

Q. 제일 작은 수 제거하기

뀨뿌뀨뿌 2023. 6. 20. 23:49

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

😀 내가 푼 답

function solution(arr) {
  if (arr.length <= 1) {
    return [-1];
  }

  let min_idx = 0;
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] < arr[min_idx]) {
      min_idx = i;
    }
  }

  return arr.filter((idx) => idx !== min_idx);
}

😊 문제풀이 답안 OR 다른사람들 답안

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

// 2
function solution(arr) {
    let newArr = [...arr]
    newArr.sort((a,b)=>b-a);
    if(newArr.length===1){
        return [-1];
    } else{
        const index = arr.indexOf(newArr.pop());
        arr.splice(index, 1);
        return arr;
    }
}

// 3
function solution(arr) {
    arr.splice(arr.indexOf(Math.min(...arr)), 1)
    return arr.length === 0 ? arr = [-1] : arr
}

 

'공부 > 코딩테스트' 카테고리의 다른 글

Q. 하샤드 수  (0) 2023.06.21
Q. 콜라츠 추측  (0) 2023.06.21
Q. 정수 제곱근 판별  (0) 2023.06.19
Q. 정수 내림차순으로 배치하기  (0) 2023.06.19
Q. 자연수 뒤집어 배열로 만들기  (0) 2023.06.19