LEVEL2/2개 이하로 다른 비트
3153 단어 level2programmerslevel2
문제 설명
전체 코드
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
해결 방법
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
비트 문제에 약한 나한테는 level2중에서 어려웠던 문제.
해결책은 간단하다.
첫 번째로 numbers의 원소가 짝수라면
가장뒤에 있는 0을 1로 바꾸어주면 된다.
그게 아닌 홀수라면
가장뒤에 있는 0을 찾아 1로 바꾸고 +1한 그 다음의 인덱스를 찾아 0으로 바꾸어 주면 된다.
Author And Source
이 문제에 관하여(LEVEL2/2개 이하로 다른 비트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bbkyoo/LEVEL22개-이하로-다른-비트저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)