728x90
반응형
제일 작은 수 제거하기
문제 설명
정수를 저장한 배열, 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] |
🫤내가 한 풀이
풀이를 생각하는중 가장 작은 숫자를 찾을 방법이 무엇이 있을까라는
생각에 검색을 하게 되었고, Math.min()라는 메서드를 알게 되었다..!
indexOf와 Math.min을 사용하여 배열에서 가장 작은 수를 찾고,splice()를
이용하여 배열을 변경해 주었다.
원래는 for문을 사용할까 싶었는데 방법이 더 있을 것 같아서 고민한 결과
메서드를 찾게 되었다...
const arr = [4,3,2,1];
function solution(arr) {
var answer = [];
if(arr.length <= 1){
return answer = [-1];
} else {
arr.splice(arr.indexOf(Math.min(...arr)),1);
answer = arr
}
return answer;
}
🫤다른 풀이
indexOf대신 filter를 사용할 수 있지만, 대부분의 풀이를 보니 Math.min메서드를 이용해서 해결한듯 하였다. 보아하니... 효율적인 풀이 인듯 하였다..
function solution(arr) {
const min = Math.min(...arr);
return arr.length !== 1 ? arr.filter(i => i !== min) : [-1]
}
'알고리즘 공부' 카테고리의 다른 글
프로그래머스 1단계 - 문자열 다루기 기본 (1) | 2022.11.21 |
---|---|
프로그래머스 1단계 - 문자열 내림차순으로 배치하기 (1) | 2022.11.21 |
프로그래머스 1단계 - 가운데 글자 가져오기 (1) | 2022.11.18 |
프로그래머스 1단계 - 정수 내림차순으로 배치하기 (2) | 2022.11.17 |
프로그래머스 1단계 - 약수의 합 (1) | 2022.11.16 |
댓글