[Programmers] 제일 작은 수 제거하기- JS

지냐킴·2022년 7월 26일
0

코딩테스트

목록 보기
22/28
post-thumbnail

✅문제 설명

정수를 저장한 배열, 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) {
    var answer = [];
    if (arr.length <= 1){
    // arr의 길이가 1과 같거나 작으면
        return [-1];
    // -1을 리턴한다.
    }else{
        arr. splice(arr.indexOf(Math.min(...arr)),1);
    // arr의 최소값을 Math.mim와 스프레드 문법을 사용해 반환하고, indexOf를 통해 가장 작은 수가 위치해 있는 인덱를 얻어준다. splice()을 통해 (시작 인덱스,삭제 개수)를 인자로 넘겨 줘서 최솟값을 삭제해준다.
        
        answer = arr;
    }
    return answer;
}

splice()
배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다.

const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]

months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]

indexOf()
지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환한다.

const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];

console.log(beasts.indexOf('bison'));
// expected output: 1

// start from index 2
console.log(beasts.indexOf('bison', 2));
// expected output: 4

console.log(beasts.indexOf('giraffe'));
// expected output: -1

Math.min()
주어진 숫자들 중 가장 작은 값을 반환한다.
Math.min 메소드는 (2,3,4)와 같은 형식, 배열을 받지 못하므로 배열을 풀어줘야 한다.
배열을 푸는 방법으론 ....(spread 연산자)가 있다.

console.log([2,3,4]);
(3)[2,3,4]

console.log(...[2,3,4]);
2 3 4

profile
코린이일기

0개의 댓글

관련 채용 정보