2個未満のLEVELのビット


問題の説明



完全なコード

def solution(numbers):
    answer = []
    for number in numbers:
        temp = list('0' + bin(number)[2:])
        idx = ''.join(temp).rfind('0') # 이렇게 오른쪽부터 0 찾는 문법 외우기
        temp[idx] = '1'

        if number % 2 != 0:
            temp[idx+1] = '0'

        answer.append(int(''.join(temp), 2))

    return answer

解決策


Beat問題で弱い私にとってlevel 2では難しい問題
解決策は簡単だ.
まずnumbersの要素が偶数である場合
一番後ろの0を1に変えればいいです.
もしそうでなければ.
一番後ろの0を見つけて、1に変えて、+1の後のインデックスを見つけて、0に変えてください.