Codility Developer Training Lesson 1번
A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N.
number 9 has binary representation 1001 and contains a binary gap of length 2
number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3
number 20 has binary representation 10100 and contains one binary gap of length 1
number 15 has binary representation 1111 and has no binary gaps
number 32 has binary representation 100000 and has no binary gaps
given a positive integer N, returns the length of its longest binary gap. The function should return 0 if N doesn't contain a binary gap
N = 1041 the function should return 5, because N has binary representation 10000010001 and so its longest binary gap is of length 5
Given N = 32 the function should return 0, because N has binary representation '100000' and thus no binary gaps
def solution(N): # write your code in Python 3.6 binary = bin(N).lstrip('0b') count = 0 max_count = 0 for i in binary: if i == '1': if max_count < count: max_count = count count = 0 else: count += 1 return max_count
def solution(N): # write your code in Python 3.6 arr = [] n = N while n//2 >= 1: arr.append(n%2) n = n//2 arr.append(1) arr.reverse() count = 0 max_count = 0 for i in arr: if i == 1: if max_count < count: max_count = count count = 0 else: count += 1 return max_count
'Coding Test Prep' 카테고리의 다른 글
[프로그래머스 연습] 수식 최대화 (Python) (0) | 2021.09.11 |
---|---|
[프로그래머스 연습] 두 정수 사이의 합 (Python) (0) | 2021.09.11 |
[프로그래머스 연습] 올바른 괄호 (Python) (0) | 2021.09.11 |
[프로그래머스 연습] 오픈채팅방 (Python) (0) | 2021.09.11 |
[프로그래머스 연습] 문자열 압축 (Python) (0) | 2021.09.04 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스 연습] 두 정수 사이의 합 (Python)
[프로그래머스 연습] 두 정수 사이의 합 (Python)
2021.09.11 -
[프로그래머스 연습] 올바른 괄호 (Python)
[프로그래머스 연습] 올바른 괄호 (Python)
2021.09.11 -
[프로그래머스 연습] 오픈채팅방 (Python)
[프로그래머스 연습] 오픈채팅방 (Python)
2021.09.11 -
[프로그래머스 연습] 문자열 압축 (Python)
[프로그래머스 연습] 문자열 압축 (Python)
2021.09.04
댓글을 사용할 수 없습니다.