문제설명
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요.
단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요.
예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
주의사항
- arr은 길이 1 이상인 배열입니다.
- 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다
입출력예시
코드
function solution(arr) {
if(arr.length === 0) return -1
if(arr.length === 1) return [-1]
let minIdx = arr.indexOf(Math.min(...arr));
arr.splice(minIdx,1)
return arr;
}
해석
가장 작은 수를 어떻게 판별하냐가 중요했다.
우선 빈배열이거나 하나의 요소만 있는 배열일 경우 if문으로 만들어 리턴해주고,
가장 작은 수의 인덱스를 찾아 변수에 할당했다.
splice를 사용하여 그 위치에서 하나를 지워주고,
배열을 리턴한다.
한줄평
생각보다 시간이 오래걸렸다. 배열에 math메소드를 사용하기 위해선 spread를 사용해야했고,
splice 메소드 사용법도 많이 헷갈렸다.
링크
https://programmers.co.kr/learn/courses/30/lessons/12935
반응형
'개발 공부 > 알고리즘 개념+문제풀이' 카테고리의 다른 글
[프로그래머스 1단계] 정수 제곱근 판별 with javascript(정수인지판별하는법) (0) | 2021.06.24 |
---|---|
[알고리즘] DFS - 깊이 우선 탐색 개념 정리 (0) | 2021.06.24 |
[프로그래머스 1단계] 짝수와 홀수 (0) | 2021.06.23 |
[프로그래머스 1단계] 최대공약수와 최소공배수 구하기_유클리드 호제법 (0) | 2021.06.23 |
[프로그래머스 1단계] 콜라츠 추측 (1) | 2021.06.23 |
댓글