[JavaScript] K번째 수
13079 단어 JavaScriptJavaScript
✨ 문제 보기
https://programmers.co.kr/learn/courses/30/lessons/42748?language=javascript
나의 풀이
function solution(array, commands) {
var answer = [];
let arr = [];
let command = [];
for (const arrItem of array) {
arr.push(arrItem);
};
for (const commandItem of commands) {
command.push(commandItem);
};
for(let i = 0; i < command.length; i++) {
let commandI = command[i][0];
let commandJ = command[i][1];
let commandk = command[i][2];
let arrCut = (arr.slice(commandI - 1, commandJ)).sort((a, b) => a - b);
answer.push(arrCut[commandk - 1]);
}
return answer;
}
막혔던 부분
function solution(array, commands) {
var answer = [];
let arr = [];
let command = [];
for (const arrItem of array) {
arr.push(arrItem);
};
for (const commandItem of commands) {
command.push(commandItem);
};
for(let i = 0; i < command.length; i++) {
let commandI = command[i][0];
let commandJ = command[i][1];
let commandk = command[i][2];
let arrCut = (arr.slice(commandI - 1, commandJ)).sort((a, b) => a - b);
answer.push(arrCut[commandk - 1]);
}
return answer;
}
첫 시도에서 테스트케이스2를 통과하지 못했다.
sort() 의 경우 사전식 정렬되는데, (ex. [1, 3, 10, 2] => [1, 10, 2, 3]) 이 부분이 문제가 되었다.
오름차순으로 정렬되도록 고친 이후에 모든 테스트 케이스를 통과했다.
해결방법 - 오름차순 내림차순 정렬
const numbers = [15, 52, 23, 11, 9];
// 오름차순 정렬, 원본 배열 수정
numbers.sort((a, b) => a - b); console.log(numbers); // [9, 11, 15, 23, 52]
// 내림차순 정렬, 원본 배열이 다시 수정
numbers.sort((a, b) => b - a); console.log(numbers); // [52, 23, 15, 11, 9]
// 출처: https://hohoya33.tistory.com/139 [개발 메모장]
다른 사람의 풀이 분석
1번
function solution(array, commands) {
return commands.map(command => {
const [sPosition, ePosition, position] = command
const newArray = array
.filter((value, fIndex) => fIndex >= sPosition - 1 && fIndex <= ePosition - 1)
.sort((a,b) => a - b)
return newArray[position - 1]
})
}
// 출처: https://programmers.co.kr/learn/courses/30/lessons/42748/solution_groups?language=javascript&type=all
2번
function solution(array, commands) {
return commands.map(v => {
return array.slice(v[0] - 1, v[1]).sort((a, b) => a - b).slice(v[2] - 1, v[2])[0];
});
}
// 출처: https://programmers.co.kr/learn/courses/30/lessons/42748/solution_groups?language=javascript&type=all
Author And Source
이 문제에 관하여([JavaScript] K번째 수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@minbok/JavaScript-K번째-수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)