[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 노력하자..