
😎풀이
n과 k 2진수로 변환
binaryN 순회
2-1. n은 1에서 0으로만 변환이 가능하므로, 0에서 1로의 변환이 필요한 경우 -1 반환
n을 k로 만드는데 필요한 변환 수 반환
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
};