알고리즘_K번째 수

charlie_·2021년 9월 2일
0

오늘의 문제

K번째 수

풀이

function solution(array, commands) {
  let answer = [];
  commands.map(el => {
    let result;
    result = (array.slice(el[0]-1, el[1]).sort((a, b) => {return a - b}))[el[2]-1];
    answer.push(result);
  })
  return answer;
}

과정

오늘 문제의 핵심은 sort였다. 처음에 sort()로 사용하며 순서를 정의하지 않고 사용하였더니 테스트 2번에서 에러가 발생했다.

sort 메소드를 사용할 때 순서를 정의하는 함수를 넣지 않을 경우에는, 비교 대상을 모두 문자열로 변환하며 유니코드를 기준으로 정렬한다.

[1, 5, 10, 20, 16]을 정렬하는 경우, 순서를 정의하는 함수에 따라 아래와 같이 결과값이 달라진다.

1. sort(); // [1, 10, 16, 20, 5]
2. sort(function(a, b) {return a - b}); // [1, 5, 10, 16, 20]
:: 오름차순 (a - b)
3. sort(function(a, b) {return b - a}); // [20, 16, 10, 5, 1]
:: 내림차순 (b - a)

profile
매일 하루에 딱 한 걸음만

0개의 댓글