😎풀이

  1. people 정렬
    1-1. 키를 기준으로 내림차 순 (앞에 작은 사람들이 끼어들어도 N번째 수임에 변화가 없도록)
    1-2. 우선 순위를 기준으로 오름차 순 정렬 (우선 되는 수 먼저 입력으로 순서보장)
  2. 정렬된 수를 순회하며 우선 순위의 인덱스에 값을 끼워넣음
  3. 재정의된 큐 반환
function reconstructQueue(people: number[][]): number[][] {
    const sorted = people.toSorted(([aH, aK], [bH, bK]) => {
        if(aH !== bH) return bH - aH
        return aK - bK
    })
    const result = []
    for(const curr of sorted) {
        result.splice(curr[1], 0, curr)
    }
    return result
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글