[Lv1] K번째 수

Creating the dots·2021년 12월 28일
0

Algorithm

목록 보기
40/65

나의 풀이

수도코드

  • array[commands[i][0]-1] 포함 array[commands[i][1]] 미만의 새로운 배열(newArr)을 복사한다.
  • newArr을 오름차순 정렬한다.
  • 정렬된 newArr[commands[i][2]-1]를 배열 res에 push한다.
function solution(array, commands) {
  const res = [];
  for(let i=0; i<commands.length; i++){
    const newArr = array.slice();
    const el = newArr.slice(commands[i][0]-1, commands[i][1]);
    res.push(el.sort( (a,b) => a-b )[commands[i][2]-1])
  }
  return res;
}

  • arr.slice(idx1, idx2)arr[idx1]부터 arr[idx2-1]까지를 복사한다.
  • 문제에서 주어진 ~번째 수는 배열에서 인덱스로 사용하기 위해 -1 해주어야 한다.
  • sort 메소드는 compareFunction을 인자로 받고, 이를 생략한 경우 각 요소를 문자열로 변환해 문자열의 유니코드 값에 따라 정렬된다. 따라서, 이 경우에는 오름차순으로 정렬하기 위해 compareFunction을 위와 같이 작성해야 한다.
profile
어제보다 나은 오늘을 만드는 중

0개의 댓글