코딩 테스트 준비
BinaryGap - Easy (구현, codilty)
개발쉐발
2023. 1. 11. 09:36
728x90
반응형
def solution(N):
binary1 = []
binary = []
sig = []
cnt = 0
while N != 0:
binary.append(N%2)
if N%2 == 1:
if len(binary1) > 0:
sig.append(binary1[-1]-cnt)
binary1.append(cnt)
N = N//2
cnt += 1
binary.reverse()
if len(binary1) == len(binary) or len(binary1) == 1:
return 0
if sum(binary) == 0:
return 0
return (min(sig)+1) * -1
정수를 이진수한 것에서 1과 1 사이의 거리 중 가장 긴 값을 구하는 문제였다.
반복문을 쓰기보다는 한 번의 순회에 필요한 값을 모두 구하고 계산하는 식으로 풀었다.
이게 정확한 풀이인지는 모르겠지만 테스트 결과 100점이 나오긴 했다.
처음 codility 문제를 풀어봤는데 방식이 낯설어서 꽤나 헤멨다. 앞으로 틈틈히 풀어봐야겠다.
728x90
반응형