[LeetCode] 3226. Number of Bit Changes to Make Two Integers Equal

Chobby·2026년 1월 2일

LeetCode

목록 보기
876/907

😎풀이

  1. nk 2진수로 변환
  2. binaryN 순회
    2-1. n1에서 0으로만 변환이 가능하므로, 0에서 1로의 변환이 필요한 경우 -1 반환
  3. nk로 만드는데 필요한 변환 수 반환
function minChanges(n: number, k: number): number {
    let changes = 0
    const binaryN = n.toString(2).split('')
    const padding = binaryN.length
    const binaryK = k.toString(2).padStart(padding, '0')
    for(let i = 0; i < binaryN.length; i++) {
        if(binaryN[i] === '0' && binaryK[i] === '1') return -1
        if(binaryN[i] === binaryK[i]) continue
        binaryN[i] = '0'
        changes++
    }
    const changedN = parseInt(binaryN.join(''), 2)
    if(changedN !== k) return -1
    return changes
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글