https://app.codility.com/programmers/lessons/1-iterations/
자연수를 이진수로 바꾼 후 1의 인덱스를 저장한다.
이후 인덱스간 차이를 계산해서 가장 큰 값을 최대값으로 업데이트해서 답을 구한다.
def solution(N):
bi = str(bin(N))
bi = bi[2:]
max = 0
lst = []
for idx in range(len(bi)):
if bi[idx] == "1":
lst.append(idx)
for i in range(len(lst)-1):
tmp = lst[i+1] - lst[i] -1
if max < tmp:
max = tmp
return max
오랜만에 하니까 조금 헤맸었던 문제이다. 기초를 다시 쌓아야지.
728x90
반응형
'Problem Solving > Codility' 카테고리의 다른 글
[Python] 3.3. TapeEquilibrium (0) | 2021.03.11 |
---|---|
[Python] 3.2. PermMissingElem (0) | 2021.03.11 |
[Python] 3.1. FrogJmp (0) | 2021.03.07 |
[Python] 2.2. OddOccurrencesInArray (0) | 2021.03.07 |
[Python] 2.1. CyclicRotation (0) | 2021.03.06 |
댓글