[프로그래머스] 2개 이하로 다른 비트

 

문제

def solution(numbers):
    answer = []
    for num in numbers:
        bin_num = bin(num)[2:]
        bin_num = '0' + bin_num
        if num % 2 == 0:
            answer.append(num + 1)
        else:
            for i in range(len(bin_num) -1, -1, -1):
                if bin_num[i] == '0':
                    answer.append(int(bin_num[:i] + '10' + bin_num[i+2:], 2))
                    break
    return answer