[프로그래머스] K번째수 - JS

예슬·2021년 2월 7일
0

Algorithm study

목록 보기
6/11
post-thumbnail

문제


풀이

  • commands에 들어있는 array 갯수는 동적이므로 commands.length 사용
  • 주어진 i, j, k를 이용하여 자르고(slice) 정렬(sort) 후 선택 해주면 된다.

이 문제를 풀면서 주의할 점은 2가지였는데,
1. slice() 메소드의 인자는 start, end를 받고 start부터 end-1번째까지만 자른다는 것이다.
2. sort() 메소드는 오름차순으로 정렬을 자동으로 해주는 것은 맞지만, 이는 유니코드를 기준으로 정렬한다.

  • 예를 들어 9와 80은 숫자 정렬이였을 때 9가 앞에 위치하는 것이 맞지만, 유니코드로 정렬되었을 때는 80이 9보다 앞에 위치한다.
  • 그러므로 오름차순으로 정렬하기 위해 아래와 같은 메소드를 사용해야 한다.
function compareNumbers(a, b) {
  return a - b;
}

제출한 코드

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

0개의 댓글