[1단계] 제일 작은 수 제거하기 js

hwakyoung·2024년 3월 18일
0

코딩 테스트

목록 보기
4/6
post-thumbnail

👉🏻 문제


👉🏻 시행착오

[1번째 방법]

function solution(arr) {
    var answer = [];
    answer = arr.sort((a,b)=> b-a);
    answer.pop();
    
    if(arr.length ==0) answer.push(-1);
    return answer;
}

처음에는 sort를 사용해서 제일 작은 값을 구한 후에 pop을 시켰는데
pop을 그냥 하게 되면 그냥 뒤에있는 값 한게만 사라지는 것이였음..ㅠㅠ
어찌저찌 예시에 나와있는 문제는 통과 하였으나 테스트케이스에서 막힘..



[2번째 방법]

    if(arr.length<=1) return [-1];
    arr.splice(arr.indexOf(Math.min(...arr)));
    answer = arr;

여러 다양한 방법을 찾아봤고 고민을 했음...

  • splice를 이용해서 제일 작은 수를 제거하면 되겠다가 1번째 생각
  • 특정 문자를 제거하면 되지 라는 생각에 indexOf를 사용
  • 작은 값을 구해야 하니까 Math.min을 사용

이렇게 해서 splice를 하니까 문제를 해결 할 줄 알았는데 또 테스크케이스에서 걸림



[3번째 방법]

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

왜 실패했나 했더니 splice에서 없앨 값만 알려주고 몇개를 없앨 것인지 갯수는 지정해 주지 않았음
그래서 뒤에 ,1로 갯수를 지정해 주니까 문제를 해결 할 수 있었음.


다양한 함수를 이용하는게 생각을 많이 해야함..
하나 하나씩은 함수가 떠오르지만 합치는 과정이 정말 쉽지 않은 것 같음!!
but 노력하자..

profile
fire-irror

0개의 댓글

관련 채용 정보