알고리즘

프로그래머스 : K번째수 (Javascript)

만년다딱2 2021. 5. 11. 16:15

1. 문제링크

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

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

2. 접근방법

사진에서 보이는 대로 n1~ n2 까지 배열을 slice 하여 n3-1 번째 수를 출력하는 방식으로 접근하였다 (배열이기때문에 -1)

3. 코드

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

4. 마치며

테스트케이스 2번만 안되는 문제를 발견!

js는 문자열을 비교해서 정렬하기때문에 정수타입으로 비교할 수 있도록

sort()메소드를 수정해주었더니 해결되었다.

js의 특징을 볼 수 있는 문제였다. 하나를 또 배움