알고리즘 정렬

.·2021년 7월 3일
0

알고리즘

목록 보기
4/21

문제설명

배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.

입출력 예시

array=[1, 5, 2, 6, 3, 7, 4]
commands=[[2, 5, 3], [4, 4, 1], [1, 7, 3]]
return=[5, 6, 3]

접근방법

  1. 전달받은 commands의 갯수만큼 for문이나 forEach 사용해서 return 값 도출해낼 것
  2. 기존 배열을 바꾸지 않는 slice 이용하고 체이닝해서 sort 함수 사용할 것
  3. index 번호에 유의할 것 예시 : 2번째수 index로는 1
function solution(array, commands) {
  var answer = [];
  commands.forEach((command) => {
    const result = array
      .slice(command[0] - 1, command[1])
      .sort((a, b) => a - b);
    answer.push(result[command[2] - 1]);
  });

  return answer;
}
  1. slice는 첫번째 인자부터 전달 받은 두번째 인자 전까지!! 잘라내어 return 한다 그래서 command[1]-1안해줘도 된다
  2. command[2]가 몇번째수 인지 알려주는 것인데 배열에서 index를 사용해 줘야하기 때문에 -1해줘야 한다
  3. 기존의 배열 계속 이용해 줘야 하기 때문에 splice는 적합하지 않다
  4. slice는 잘라낸 배열 return하기 때문에 체이닝이 가능하다
profile
Divde & Conquer

0개의 댓글

관련 채용 정보