프로그래머스/코딩 기초 트레이닝

[프로그래머스] 코딩테스트 연습 > 코딩 기초 트레이닝 > 뒤에서 5등 위로

Jayksss 2025. 1. 21. 00:18
문제 설명
정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 제외한 수들을 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

제한사항
6 ≤ num_list의 길이 ≤ 30
1 ≤ num_list의 원소 ≤ 100

입출력 예
num_list	result
[12, 4, 15, 46, 38, 1, 14, 56, 32, 10]	[15, 32, 38, 46, 56]

 

내 풀이:

function solution(num_list) {
    var answer = num_list.sort((a, b) => a - b).filter((item, index) => index > 4);
    return answer;
}

 

다른 풀이:

* slice 사용
function solution(num_list) {
  return num_list.sort((a, b) => a - b).slice(5);
}


* splice 사용
function solution(num_list) {
    var answer = num_list.sort((a,b) => a-b).splice(5);
    return answer;
}

 

기억하자:

1. slice()
기능: 배열의 일부를 추출하여 새로운 배열을 반환합니다. 원본 배열은 변경되지 않습니다.
구문: array.slice(start, end)

start (선택): 추출을 시작할 인덱스 (포함).
end (선택): 추출을 멈출 인덱스 (미포함). 지정하지 않으면 배열의 끝까지 추출.

특징:
원본 배열은 그대로 유지됩니다.
반환된 배열은 기존 배열의 참조가 아니라 새 배열입니다.

예제:
const fruits = ["apple", "banana", "cherry", "date", "elderberry"];
const sliced = fruits.slice(1, 4);
console.log(sliced); // ["banana", "cherry", "date"]
console.log(fruits); // ["apple", "banana", "cherry", "date", "elderberry"] (원본 유지)
2. splice()
기능: 배열의 요소를 추가, 삭제, 또는 교체하여 원본 배열을 변경합니다.

구문: array.splice(start, deleteCount, item1, item2, ...)
start: 수정 시작 위치의 인덱스.
deleteCount (선택): 삭제할 요소의 개수. 0이면 아무것도 삭제하지 않음.
item1, item2, ... (선택): 추가할 요소들.

특징:
원본 배열이 수정됩니다.
삭제된 요소들을 배열로 반환합니다.



예제 1: 요소 삭제
const fruits = ["apple", "banana", "cherry", "date", "elderberry"];
const removed = fruits.splice(1, 2);
console.log(removed); // ["banana", "cherry"] (삭제된 요소)
console.log(fruits); // ["apple", "date", "elderberry"] (원본 변경됨)


예제 2: 요소 추가
const fruits = ["apple", "banana", "cherry"];
fruits.splice(1, 0, "blueberry", "blackberry");
console.log(fruits); // ["apple", "blueberry", "blackberry", "banana", "cherry"]


예제 3: 요소 교체
const fruits = ["apple", "banana", "cherry"];
fruits.splice(1, 1, "blueberry");
console.log(fruits); // ["apple", "blueberry", "cherry"]

 

 

매번 까먹는 sort  오름차순 / 내림차순

둘 중에 하나는 외우자!

a - b => 오름차순
b - a => 내림차순