[LeetCode] 1356. Sort Integers by The Number of 1 Bits

Chobby·2025년 8월 12일
1

LeetCode

목록 보기
505/582

😎풀이

  1. 해당 정수가 몇 비트인지를 확인하는 헬퍼 함수를 정의한다.
  2. arr을 정렬한다.
    2-1. 비트 수를 오름차 순으로 정렬한다.
    2-2. 만일 비트가 같다면 정수를 기준으로 오름차 순 정렬한다.
  3. 정렬된 결과를 반환한다.
function sortByBits(arr: number[]): number[] {
    const sorted = arr.toSorted((a, b) => {
        const bitA = getBit(a)
        const bitB = getBit(b)
        if(bitA === bitB) return a - b
        return bitA - bitB
    })
    return sorted
};

function getBit(n: number) {
    let count = 0
    while(n) {
        if(n & 1)count++
        n >>= 1
    }
    return count
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글