프로그래머스. 2개 이하로 다른 비트 파이썬 풀이

minan·2021년 6월 28일
0

프로그래머스

목록 보기
74/92

프로그래머스. Level 2. 2개 이하로 다른 비트 파이썬 풀이

문제링크 https://programmers.co.kr/learn/courses/30/lessons/77885

알고리즘

짝수라면 마지막 비트만 1로 바꾸면 된다
홀수라면 0을 찾아 1로 바꾸고 그 다음 비트를 0으로 바꾸면 최솟값

def solution(numbers):
    answer = []
    
    for num in numbers:
        if num % 2 == 0:
            binary = list(bin(num)[2:])
            binary[-1] = "1"
        else:
            binary = bin(num)[2:]
            binary = "0" + binary
            zero = binary.rfind('0')
            binary = list(binary)
            binary[zero] = "1"
            binary[zero + 1] = "0"
        
        answer.append(int("".join(binary), 2))
        
    return answer
    
    
    
    
profile
https://github.com/minhaaan

0개의 댓글