코테 공부

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

moonsun623 2021. 12. 3. 23:02
반응형

https://programmers.co.kr/learn/courses/30/lessons/77885?language=python3 

 

코딩테스트 연습 - 2개 이하로 다른 비트

 

programmers.co.kr

 

내가 한 풀이

def solution(numbers):
    answer = []
    for number in numbers:
        
        bin_number = list('0' + bin(number)[2:])
        idx = ''.join(bin_number).rfind('0')
        bin_number[idx] = '1'
        
        #홀수일땐 idx의 다음 숫자를 0으로 바꿔준다.
        if number%2!=0:
            bin_number[idx+1]='0'
        answer.append(int("".join(bin_number),2))
    return answer

 

이 문제를 풀면서 내장함수 bin을 알게되었다.

 

bin(x)

정수를 "0b" 가 앞에 붙은 이진 문자열로 변환하는 함수이다.