본문 바로가기
Study Note/Algorithm

프로그래머스 #정렬 - K번째수 lv1

by 시뮝 2021. 1. 20.
728x90

function solution(array, commands) {
    //variables init
    let i, len = commands.length, command, answer = [];
    
    for(i=0; i<len; i++) {
        //array slice
        command = array.slice(commands[i][0]-1, commands[i][1]);

        //number sort
        command.sort((a, b) => a - b);
        
        //result set
        answer.push(command[commands[i][2]-1])
    }
    
    return answer;
}

 

javascript 의 sort() 함수에 대한 기본기를 확인하는 문제였다. slice 한 배열을 정렬하기 위해 sort를 하는 경우

 

array.sort() 이렇게 쓰면 숫자가 문자열로 인식되어 1, 12, 2 순으로 정렬되게 된다. (기대값은 1, 2, 12) 

 

숫자로 인식되게 하려면 어떻게 해야할까? 모질라 사이트에선 다양한 방법을 친절하게 알려주고 있다.

 

첫 번째 방법 - 함수 표현식

array.sort(function(a, b) {a-b});

 

두 번째 방법 - ES2015(ES6)부터 제공하는 화살표 함수 이용

array.sort((a,b)=>a-b);

 

난 많이 모질라니까(-_-;;) 모질라를 많이 애용해야겠다.

developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

 

Arrow function expressions - JavaScript | MDN

An arrow function expression is a compact alternative to a traditional function expression, but is limited and can't be used in all situations. Differences & Limitations: Does not have its own bindings to this or super, and should not be used as methods.

developer.mozilla.org

 

728x90

댓글