😎풀이

  1. n을 1이 될 때까지 연산
    1-1. 홀수인 경우, +1 혹은 -1하여 1이 될 때까지 반복한 결과 중 낮은 연산 수 채택
    1-2. 짝수인 경우, 1/2 하여 다음 연산 수행
  2. 필요한 최소 연산의 수 반환
function integerReplacement(n: number): number {
    let operations = 0
    while(n > 1) {
        operations++
        if((n & 1) === 1) {
            const plus = integerReplacement(n + 1)
            const minus = integerReplacement(n - 1)
            return operations + Math.min(plus, minus)
        } else {
            n /= 2
        }
    }
    return operations
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글