Notice
Recent Posts
Recent Comments
준호씨의 블로그
Codility - BinaryGap - Python 본문
반응형
문제: Binary Gap은 2진수에서 1 사이에 있는 연속된 0의 최대 시퀀스입니다. 예를 들어 9는 2진수로 1001이고 binary gap은 2입니다. 529는 2진수로 1000010001이고 binary gap은 두 개이고 각각 4와 3인데 최댓값은 4입니다. 20은 10100이고 binary gap은 1입니다. 15는 1111이고 binary gap은 없습니다. 32는 100000이고 binary gap이 없습니다. 없는 경우 0을 리턴합니다.
def solution(N):
return max([len(x) for x in format(N, 'b').strip('0').split('1')])
- format(N, 'b')의 는 N을 2진수로 변환합니다.
- 1 사이에 있는 0의 개수를 구하는 거라 양쪽 끝에 있는 0을 버립니다.
- '1'로 split 하면 연속된 '0'으로 이루어진 문자열로 구성된 배열이 리턴됩니다.
- [len(x) for x in arr]로 문자열들의 길이로 구성된 배열을 만듭니다.
- 길이들 중 가장 큰 값을 리턴합니다.
반응형
'개발이야기 > PS - Problem Solving, 알고리즘' 카테고리의 다른 글
Codility - Odd Occurrences In Array (0) | 2021.03.20 |
---|---|
Codility - CyclicRotation (0) | 2021.03.19 |
hackerrank - Migratory Birds - Python3 (0) | 2020.05.29 |
hackerrank - Divisible Sum Pairs - Python3 (0) | 2020.05.28 |
hackerrank - Birthday Chocolate - Python3 (0) | 2020.05.23 |
Comments