BinaryGap

bird.j·2021년 8월 14일
0

코딜리티

목록 보기
2/5

코딜리티

  • 정수 N을 이진수로 변환하여 1로 감싸져있는 가장 긴 0의 길이 반환하기
  • N은 1~2,147,483,647의 정수



접근 방식

: 1의 인덱스를 새 리스트에 담는다.
for문을 돌면서 인덱스 사이의 길이를 구하고 최댓값을 저장한다.

알게된 점

strip()과 split()이용하기

  • strip('0') : 1로 감싸져 있지 않은 0 제거
  • strip('1') : 1로 감싼 양쪽 0 제거
  • split('1') : 중간 1로 나누기


코드

def solution(N):
    a = bin(N)[2:]
    
    idx = []
    for i in range(len(a)):
        if a[i] == '1':
            idx.append(i)

    ans = 0
    for j in range(len(idx)-1):
        tmp = len(a[idx[j]+1:idx[j+1]])
        if tmp > ans:
            ans = tmp
    return ans
def solution(N):
    a = bin(N)[2:]
    b = a.strip('0').strip('1').split('1')
    return len(max(b))

0개의 댓글