본문 바로가기
코딩테스트

(javascript) K번째수

by 어뇨 2024. 2. 7.

 

function solution(array, commands) {
    var answer = [];
    for(let i = 0 ; i < commands.length ; i++){
        let sortArray = array.slice(commands[i][0]-1, commands[i][1])
        sortArray.sort((a, b)=> a-b)
        answer.push(sortArray[commands[i][2]-1])
        console.log(sortArray)
    }

    return answer}

 

for 문을 이용해서 문제를 풀었다.

slice메서드를 사용해서 commands[i][0]-1 에서부터 commands[i][1] 즉 i의 값을 0이라고 하면 commands[i][0]-1은 commands[i][0]의 값 2, 그런데 slice에 2부터 시작한다하면 배열의 인덱스[2]에서 부터 즉 2부터 시작을한다. 하지만 예시에서도 나와있듯이 5부터 시작해야하기때문에 -1을했다

그렇게하면 우선 필요한만큼 자른후 정렬한 sortArray 변수로 따로 지정을 했다.

그리고 오름차순으로 정렬을 해주고 push를 사용해서 k의 값 -1 의 인덱스를 answer에 push하도록 했다.