programmers

[Programmers Level 1 정렬] K번째 수 Javascript

냠냠맨 2022. 12. 11. 11:01

문제정보

 

원본 배열이 주어지고 2차원배열로 이루어진 commands도 주어지네요

i번째부터 j번째까지 자르고 정렬.. 엥..? 이거 완전 slice()하라는 소리 아니냐?

싶어서 slice()로 구현해봤습니다.

 


 

나의풀이

 

function solution(array, commands) {
    let answer = []
    
    commands.forEach(ele => {
        let sorter = array.slice(ele[0]-1, ele[1]).sort((a,b) => a-b)[ele[2] -1];
        answer.push(sorter)
    })
    
    return answer
}

 

forEach로 slice해주고 문제를 풀었습니다.

근데 인덱스는 0부터 세지만 문제는 1부터 숫자를 세서

각각 -1을 해줘야 답이 제대로 반환되네요

 

 


 

다른사람의 풀이

 

function solution(array, commands) {
    return commands.map(v => {
        return array.slice(v[0] - 1, v[1]).sort((a, b) => a - b).slice(v[2] - 1, v[2])[0];
    });
}

 

그냥.. map으로 commands 배열을 바꿔주면 되네요 디용대용..

반응형