정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]
인 경우는 [4,3,2]
를 리턴 하고, [10]
면 [-1]
을 리턴 합니다.
arr | return |
---|---|
[4,3,2,1] | [4,3,2] |
[10] | [-1] |
const solution = (arr) => {
let result = arr.filter(item => item !== Math.min(...arr));
return result.length !== 0 ? result : [-1]
}
/*
내가 처음 작성한 코드이다. +8점이나 맞은 코드이다!!
1. Math.min(...arr)을 사용하여 배열 arr에서 가장 작은 값을 찾는다.
2. arr.filter(item => item !== Math.min(...arr))을 사용하여
요소를 하나씩 꺼내어 Math.min(...arr)과 같지 않은 요소만 result에 담는다.
3. result의 길이가 0이 아니라면 result를 return하고 0이면 [-1]을 리턴하도록 해주었다.
*/
const solution = (arr) => {
var result = [];
var min = Math.min(...arr);
for(var i = 0; i < arr.length; ++i) {
if(arr[i] != min) {
result.push(arr[i]);
}
}
return result.length !== 0 ? result : [-1];
}
/*
1. 빈 배열 answer를 생성한다.
2. Math.min(...arr)을 사용하여 배열 arr에서 가장 작은 값을 찾아 변수 min에 저장한다.
3. for 루프를 사용하여 배열의 각 요소를 순회하며, 현재 요소가 최솟값과 다른 경우 (arr[i] != min)
해당 요소를 answer 배열에 push 메서드를 사용하여 추가한다.
4. result의 길이가 0이 아니라면 result를 return하고 0이면 [-1]을 리턴하도록 해주었다.
*/
const solution = (arr) => {
arr.splice(arr.indexOf(Math.min(...arr)), 1)
return arr.length !== 0 ? arr : [-1]
}
/*
여러 방법으로 코드를 작성해보고 싶어서 비순수 함수로 구현한거라 좋은 코드는 아니지만 작성해보았다.
1. Math.min(...arr)을 사용하여 배열 arr에서 가장 작은 값을 찾는다.
2. arr.indexOf(Math.min(...arr))를 사용하여 가장 작은 값의 인덱스를 찾는다.
3. arr.splice(index, 1)를 사용하여 해당 인덱스에 위치한 요소를 제거한다.
4. 만약 제거된 요소로 인해 배열의 길이가 0이 아니라면 result를 return하고
0이면 [-1]을 리턴하도록 해주었다.
*/