728x90
https://programmers.co.kr/learn/courses/30/lessons/12935
접근
먼저 배열 내에서 제일 작은 수를 찾는다. 이후 배열 내에서 제일 작은 수를 제거한 나머지의 수들을 반환하도록 한다.
반환된 배열이 비어있다면 -1을 추가하도록 하였다.
여기서 제일 작은 수를 제거하기 위해 filter 함수를 만들었는데 각 함수들은 한 개의 기능만 해야한다. 하지만 filter 함수에 배열이 비어있다면 -1을 추가하는 조건을 추가했었다가 삭제했다.
구현
- Math.min()은 숫자들을 전달하여 그 중 가장 작은 수를 반환한다.
- 제일 작은 수와 전달받은 arr 배열을 filter에 전달하여 제일 작은 수를 제외한 나머지 수를 배열에 추가하여 반환한다.
- 반환된 배열을 answer에 저장하고 answer가 비어있는지 검사하여 비어있다면 -1을 추가한다.
function filter(cmp, arr) {
let result = [];
for(let a of arr) {
if(isEqual(cmp, a)) continue;
result.push(a);
}
return result;
}
function isEqual(a, b) {
return a === b;
}
function isEmpty(arr) {
return arr.length === 0;
}
function solution(arr) {
let answer = [];
let minNumber = Math.min(...arr);
answer = filter(minNumber, arr)
if(isEmpty(answer)) answer.push(-1);
return answer;
}
'프로그래밍 > 함수형 프로그래밍' 카테고리의 다른 글
[함수형 프로그래밍 연습하기] 프로그래머스 Lvel1 - 문자열 내 p와 y의 개수 (0) | 2021.08.09 |
---|---|
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 나누어 떨어지는 숫자 배열 (0) | 2021.08.09 |
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 완주하지 못한 선수 (0) | 2021.08.07 |
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 핸드폰 번호 가리기 (0) | 2021.08.06 |
[함수형 프로그래밍 연습하기] 프로그래머스 Level1 - 평균 구하기 (0) | 2021.08.06 |