[Codility] Lesson1. Binary Gap[Easy] - 파이썬

곌로그·2023년 4월 30일
0

[python]코딩테스트

목록 보기
10/34
post-thumbnail

문제 링크


문제 요약

Lesson 1의 Iterations 에 해당한다.

입력으로 받은 10 진수를 2진수로 변환하고 1과 1 사이의 거리를 구해주는 문제이다.


문제 풀이

def solution(N):
    binNum = bin(N)
    one_idx = []
    max_dist = 0

    for i in range(0, len(binNum)):
        if binNum[i] == "1":
            one_idx.append(i)
    
    if len(one_idx) <= 1:
    # binary gap의 조건이 만족되지 않았으면 바로 0 return
        return 0 
    
    for i in range(1, len(one_idx)):
        max_dist = max(max_dist, one_idx[i] - one_idx[i-1] -1)
    return max_dist

📌 고려해야할 점

  • 우선 1이 존재하는 인덱스를 for문을 돌면서 저장한다.
  • 만약, 저장한 인덱스의 길이가 1 이하라면, binary gap을 만족하지 못하기 때문에 바로 0을 return
  • 그렇지 않다면, 1과 1 사이의 거리 중 최대값을 return 한다.

내가 보려고 저장하는 문제 풀이 링크

0개의 댓글