16
문제
양수 N을 이진법으로 바꿨을 때, 연속으로 이어지는 0의 갯수가 가장 큰 값을 return해 주세요.
- 이어지는 0은 1과 1사이에 있는 것을 의미합니다.
- 이런 것을 binary gap 이라고 합니다.
예를 들어,
input: 9
output: 2
설명: 9의 이진수는 1001 입니다.
1과 1사이에 있는 0은 2 이므로, 2를 return
input: 529
output: 4
설명: 529의 이진수는 1000010001 입니다.
1과 1사이에 있는 연속된 0의 수는 4와 3입니다.
이 중 큰 값은 4이므로 4를 return
input: 20
output: 1
설명: 20의 이진수는 10100 입니다.
1과 1사이에 있는 연속된 0의 수는 1 뿐입니다.
(뒤에 있는 0은 1사이에 있는 것이 아니므로)
input: 15
output: 0
설명: 15의 이진수는 1111 입니다.
1과 1사이에 있는 0이 없으므로 0을 return
input: 32
output: 0
설명: 32의 이진수는 100000 입니다.
1과 1사이에 있는 0이 없으므로 0을 return
풀이
def solution(N):
binary_list = list(format(N, 'b'))
count = 0
maximum = 0
for i in binary_list:
if i == '0':
count += 1
elif i == '1':
if count > maximum:
maximum = count
count = 0
print(binary_list)
return maximum
Author And Source
이 문제에 관하여(16), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@thsrns3934/codekata-16
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def solution(N):
binary_list = list(format(N, 'b'))
count = 0
maximum = 0
for i in binary_list:
if i == '0':
count += 1
elif i == '1':
if count > maximum:
maximum = count
count = 0
print(binary_list)
return maximum
Author And Source
이 문제에 관하여(16), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@thsrns3934/codekata-16저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)