반응형
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12935
2. 설명
이 문제의 핵심은 원본 배열 순서 그대로 리턴해야한다는 것이다.
처음엔 정렬 후 마지막 값만 pop()으로 빼주고 배열을 리턴했는데, 테스트케이스만 통과되고 제출이 안됐다. 이유를 살펴보니 원본 배열의 순서가 지켜져야하는 것이였다.
arr.slice()를 통해 arr와 같은 배열을 만들어준다. 리턴할 배열 answer을 빈 배열로 선언해준 후, arr를 내림차순 정렬해주고 가장 끝에 있는 값을 smallest 변수에 저장해준다. for문을 돌며 newArr에 있는 값이 smallest와 같지 않으면 answer 배열에 push해준다.
arr의 길이가 1 이면 [-1]을 리턴하라고 되어있으므로 삼항연산자를 이용하여 조건에 맞는 배열을 리턴해준다.
3. 코드
function solution(arr) {
let newArr = arr.slice();
let answer = [];
arr.sort((a,b) => b-a);
let smallest = arr[arr.length-1];
for(let i=0;i<newArr.length;i++){
if(newArr[i] !== smallest) answer.push(newArr[i])
}
return arr.length === 1 ? [-1] : answer;
}
반응형
'프로그래머스 > 구현' 카테고리의 다른 글
[문자열] 프로그래머스 '최댓값과 최솟값' - js (0) | 2023.03.15 |
---|---|
[문자열] 프로그래머스 '괄호변환' - js (0) | 2022.10.26 |
[문자열] 프로그래머스 'JadenCase 문자열 만들기' - js (0) | 2022.10.18 |
[문자열] 프로그래머스 '문자열 내 p와 y의 개수' - js (0) | 2022.10.13 |
[문자열] 프로그래머스 '문자열 내 마음대로 정렬하기' - js (0) | 2022.10.13 |