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

Chloé·2022년 3월 14일
1
post-thumbnail

K번째수 #정렬

출처 - 프로그래머스 코딩테스트 고득점 KIT

💡 문제 접근하기

  • 문제에서 주어진 연산을 차근차근 따라가면 어렵지 않게 풀 수 있다.
  • 다만 k번째 수는 배열에서 k - 1번째 인덱스의 수라는 것을 깜빡 지나치지 말자!

🔥 문제 풀어보기

function solution(array, commands) {
  let answer = [];

  for (let command of commands) {
    answer.push(process(array, command));
  }

  function process(array, command) {
    const arr = array.slice(command[0] - 1, command[1]).sort((a, b) => a - b);
    return arr[command[2] - 1];
  }

  return answer;
}

🚀 문제에서 배워보기

sort() 정확하게 쓰기

  • 숫자 배열을 정렬할 때, arr.sort()로 정렬하면 테스트 케이스 2번이 틀리게 나온다. 왜일까?
  • sort([compareFunction])에 정렬 기준이 되는 비교 구문을 넣어주지 않으면, sort()주어진 값을 문자열로 변환한 후, 사전 순으로 정렬한다.
    • 그렇기에 10과 2를 비교할 경우 10이 먼저, 2가 나중 순으로 정렬하게 된다.
  • 따라서 정확히 arr.sort((a, b) => a - b)로 주어진 숫자들을 오름차순 정렬한다는 것을 명시해주도록 하자!
profile
클로이 데일리 로그

0개의 댓글