< 오늘의 문제 >
- K번째수
k번째 수
function solution(array, commands) {
var answer = [];
for (let i = 0; i < commands.length; i++) {
let temp = [];
temp = array.slice(commands[i][0] - 1, commands[i][1]);
temp.sort((a, b) => a - b)
answer.push(temp[commands[i][2] - 1]);
}
return answer;
}
- 나의 풀이
: 일단 배열을 from to 로 잘라내야 하기때문에 slice 메서드를 이용해야겠다고 생각했고,
아침에 일어나자마자 풀이를 해서 그런가 commands.length
값과 commands 인덱스
값의 차이를 두고
코딩해야하는 걸 까먹어서 한참 생각하고말았다.
주석은 내가 나에게 조언하는 느낌으로 항상 달고있는데, 정보를 원하시는 분들께서도 와닿을지는 모르겠다..
commands[i][0] - 1, commands[i][1]
이 부분이 이해가 안된다면 다시 풀어서 설명해보겠다..
commands[i][0] - 1
-1의 이유는 commands의 예시를 [2, 5, 3] 으로 들었을때
결국 slice(1,5) 되는건데 이는 arr[1]~arr[5] 의 slice값을 구하게되는거다.. slice의 to값은 포함이 안되고
그 전의 요소까지만 출력이된다!
이 후 오름차순으로 값을 정렬한뒤, commands[i][2] - 1]
로 temp[2]
를 구하게하여, k번째값을 나타내게한다.