Lv2 프로그래머스(Programmers)[Python][파이썬] 2개 이하로 다른 비트

"""
출처:프로그래머스,
https://school.programmers.co.kr/learn/courses/30/lessons/77885

"""

# 풀이 과정
def solution(numbers):
result = []
for a in numbers:
k = list(str(bin(a))[2:])
t = k[::-1]
flag = False

for b in range(len(t)):
if t[b] == "0":
c = b
flag = True
break

if flag == True:
d = "1" + "0" * (b - 1)
e = int(d, 2)
result.append(a + e)

else:
d = "1" + "0" * (len(k) - 1)
e = int(d, 2)
result.append(a + e)

return result