코딩테스트 연습 > 코딩 기초 트레이닝 > 뒤에서 5등까지
문제 설명
제한사항
- 1 ≤ num_list의 원소 ≤ 100
입출력 예
[12, 4, 15, 46, 38, 1, 14]
result
[1, 4, 12, 14, 15]
입출력 예 설명
입출력 예 #1
- [12, 4, 15, 46, 38, 1, 14]를 정렬하면 [1, 4, 12, 14, 15, 38, 46]이 되고, 앞에서 부터 5개를 고르면 [1, 4, 12, 14, 15]가 됩니다.
문제 풀이
function solution(num_list){
return num_list.sort((a,b) => a - b).slice(0,5);
}
// 테스트
const num_list = [10, 5, 8, 2, 7, 3, 9, 1, 6, 4]
console.log(solution(num_list); // [1, 2, 3, 4, 5]
풀이 설명
1. num_list.sort((a, b) => a - b) : sort() 메서드를 사용하여 배열을 오름차순으로 정렬합니다. 이때, 비교 함수 (a, b) => a - b를 사용하여 숫자를 비교합니다. 이 함수는 a가 b보다 작으면 음수를 , 같으면 0을, 크면 양수를 반환하여 정렬합니다.
2. slice(0, 5) : 정렬된 배열에서 처음부터 5개의 요소를 추출하여 새로운 배열을 만듭니다.
따라서 이 함수는 가장 작은 5개의 수를 오름차순으로 담은 배열을 반환합니다.
- 첫 번째 매개변수는 시작 인덱스를 나타내며, 해당 인댁스의 요소를 포함합니다.
- 두 번째 매개변수는 끝 인덱스를 나타내며, 해당 인덱스의 요소는 포함하지 않습니다.
따라서 slice(0. 5)는 배열의 첫 번째 요소부터 다섯 번째 요소까지(다섯 번째 요소는 제외)의 요소를 포함하는 새로운 배열을 반환합니다.
참고
sort()
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
slice()
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/slice