😎풀이

  1. 공통 접두사가 될 때까지 shift(이동)
    1-1. 7 = 0000...111
    1-2. 5 = 0000...101
    1-3. 공통된 부분은 0000...1
  2. 이동된 만큼 좌측으로 shift된 결과를 반환
  3. 0000...100 // 4
function rangeBitwiseAnd(left: number, right: number): number {
    let shift = 0
    // 공통 접두사 찾기
    while(left !== right) {
        left >>= 1
        right >>= 1
        shift++
    }
    // 생략된만큼 시프트하여 반환
    return left << shift
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글

Powered by GraphCDN, the GraphQL CDN