[JavaScript][Programmers] K번째수

조준형·2021년 7월 2일
0

Algorithm

목록 보기
8/142
post-thumbnail

🔎 K번째수

❓ 문제링크

https://programmers.co.kr/learn/courses/30/lessons/42748

📄 제출 코드

function solution(array, commands) {
    var answer = [];
    for (var i = 0; i < commands.length; i++) {
        let list = array.slice(commands[i][0] - 1, commands[i][1]).sort((a, b) => {
            return a - b;
        });
        answer.push(list[commands[i][2]-1]);

    }
    return answer;
}

slice를 이용하여 i번째에서 j번째까지의 수를 뽑아서 정렬하고, answer에 k번째 수를 저장한다.

❗ 주의
처음에 sort를 그냥 sort()를 써서 사용했는데 두번째 테스트케이스에서 실패가 떴다.
질문란에서 찾아보니, sort()의 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다. 라고 나와있다.

const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]

그래서 숫자를 비교해주게 변경하였더니 통과하였다.

var numbers = [1, 30, 4, 21, 100000];
numbers.sort(function(a, b) {
  return a - b;
});
console.log(numbers);
// [ 1, 4, 21, 30, 100000 ]

📘 참고

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

profile
깃허브 : github.com/JuneHyung

0개의 댓글