코드 풀이

K번째 수

SammyK 2022. 3. 16. 13:24

풀이:

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

단계별로 

commands 배열의 첫번쨰부터 끝까지 실행하는 for 반복문안에

index 0 번의 0 번은 자르기 시작점 인데 받은 array 는 0번부터가 1이니까 -1 해주어야 한다,

index 0 번의 1번은 자르기 마지막점까지라 -1 를 안해도 된다.

그후 정렬해주고 index 0 번의 2번 숫자는 array 의 자르고 정렬한 배열속 자리수 이기에 -1 해준 값을 또 잘라준다.

자른 배열속 정수를 answer 에다가 .push 해주고 그값을 for 문이 끝나면 리턴한다.


다른사람 풀이

function solution(array, commands) {
    return commands.map(command => {
        const [sPosition, ePosition, position] = command
        const newArray = array
            .filter((value, fIndex) => fIndex >= sPosition - 1 && fIndex <= ePosition - 1)
            .sort((a,b) => a - b)    

        return newArray[position - 1]
    })
}

 

'코드 풀이' 카테고리의 다른 글

소수 찾기  (0) 2022.03.17
폰켓몬  (0) 2022.03.17
소수 찾기  (0) 2022.03.16
예산  (0) 2022.03.16
약수의 합  (0) 2022.03.15