ALGORITHM/Kakao

[Python] 2개 이하로 다른 비트

김쿸후 2021. 10. 9. 01:05

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/77885#

 

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

 

programmers.co.kr

 

2. 풀이

string 는 조작이 불가능하므로

list(string)으로 바꿔서 조작한 후,

str_exp = ''.join(list) <- 이렇게 다시 스트링으로 바꿔줘야 한다.

 

3. 코드

def solution(numbers):
    answer = []
    bin_numbers = []
    for i in numbers:
        element= bin(i)
        list_e = list(element)
        list_e.insert(2,'0')
        element = ''.join(list_e)
        bin_numbers.append(element)
    
    for i in bin_numbers:
        for j in range(len(i)-2):
            if ((i[len(i)-1-j] == '0') and (j == 0)):
                list_i = list(i)
                list_i[len(i)-1-j] = '1'
                i = ''.join(list_i)
                break
            elif ((i[len(i)-1-j] == '0') and (i[len(i)-j-2] != 'b')):
                list_i = list(i)
                list_i[len(i)-1-j] = '1'
                list_i[len(i)-j] = '0'
                i = ''.join(list_i)
                break
            elif ((i[len(i)-1-j] == '0') and (i[len(i)-j-2] == 'b')):
                list_i = list(i)
                list_i[len(i)-1-j] = '1'
                list_i[len(i)-j] = '0'
                i = ''.join(list_i)
                break
                
        answer.append(int(i,2))
                
    return answer

'ALGORITHM > Kakao' 카테고리의 다른 글

[Python] 뉴스 클러스터링  (0) 2022.01.07
[Python] 다트 게임  (0) 2022.01.04
[Python] 이진 변환 반복하기  (0) 2021.10.09
[Python] 메뉴 리뉴얼  (0) 2021.10.08
[Python] 삼각달팽이  (0) 2021.10.08