배열 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]
- 전달받은 commands의 갯수만큼 for문이나 forEach 사용해서 return 값 도출해낼 것
- 기존 배열을 바꾸지 않는 slice 이용하고 체이닝해서 sort 함수 사용할 것
- 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;
}
- slice는 첫번째 인자부터 전달 받은 두번째 인자 전까지!! 잘라내어 return 한다 그래서 command[1]-1안해줘도 된다
- command[2]가 몇번째수 인지 알려주는 것인데 배열에서 index를 사용해 줘야하기 때문에 -1해줘야 한다
- 기존의 배열 계속 이용해 줘야 하기 때문에 splice는 적합하지 않다
- slice는 잘라낸 배열 return하기 때문에 체이닝이 가능하다