diff --git "a/argorithm/\354\235\264\354\247\204\353\263\200\355\231\230\353\260\230\353\263\265\355\225\230\352\270\260.py" "b/argorithm/\354\235\264\354\247\204\353\263\200\355\231\230\353\260\230\353\263\265\355\225\230\352\270\260.py" index 968a7ae..5dfdd8a 100644 --- "a/argorithm/\354\235\264\354\247\204\353\263\200\355\231\230\353\260\230\353\263\265\355\225\230\352\270\260.py" +++ "b/argorithm/\354\235\264\354\247\204\353\263\200\355\231\230\353\260\230\353\263\265\355\225\230\352\270\260.py" @@ -1,41 +1,16 @@ -def removeZero(val): - removedZeroCnt = 0 - for index, i in enumerate(val): - if i == '0': - removedZeroCnt += 1 - return removedZeroCnt, ''.join(val).replace('0', '') - -def transform(val): - namosi = [] - while val != 1: - rest = val % 2 - val = val // 2 - namosi.append(str(rest)) - namosi.append('1') - namosi.reverse() - return namosi - def solution(s): - answer = [] zeroCnt = 0 transCnt = 0 - listedVal = list(s) - while listedVal: + while True: + if s == '1': + break # 0 제거 - removedZeroCnt, val = removeZero(listedVal) - print(removedZeroCnt, val) - zeroCnt += removedZeroCnt - # 0 제거 후 길이 확인 - removedStringLen = len(val) - print(removedStringLen) + removedZero = s.count('1') + zeroCnt += len(s) - removedZero # 이진 변환 - listedVal = transform(removedStringLen) + s = bin(removedZero)[2:] transCnt += 1 - if len(listedVal) == 1 and listedVal[0] == "1": - break - answer.append(transCnt) - answer.append(zeroCnt) - return answer + return [transCnt, zeroCnt] if __name__ == '__main__': result = solution("110010101001")