[프로그래머스] 코딩테스트연습 > 정렬 > K번째 변수
알고리즘/javascript

[프로그래머스] 코딩테스트연습 > 정렬 > K번째 변수

https://programmers.co.kr/learn/courses/30/lessons/42748

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

function solution(array, commands) {
    const arr = commands.map((el) => {
        // const start = el[0]
        // const end = el[1]
        // const position = el[2]
        const [start, end, position] = el
        
        //문자열이 아니므로 sort 정렬순서 지정
        const result = array.slice(start-1,end).sort((a,b)=> a-b)[position-1]
        return result 
    })
    return arr
}
  • 처음에 start, end, position을 각각 인덱싱해서 뽑았는데 [ start, end, position ] = el 이라는 편한 방법을 알게되었다.
  • 처음에 sort() 에 조건 안줬더니 default 가 문자열 정렬 기준이라 error 떠서 숫자 정렬 기준 추가해줬음.

Array.sort( (a,b) => return ) : array를 돌면서 2개의 value를 비교해서 순서 정렬(a:앞, b:뒤)

  1. return 값 < 0 : a,b 순서로 정렬
  2. return 값 > 0 : b,a 순서로 정렬
  3. return 값 = 0 : 원래 순서로 정렬
  4. 조건이 없을 경우 문자열 / 유니코드 기준으로 정렬 
반응형