-
[python] Codility Lesson 1-1. BinaryGap공부/알고리즘 2021. 7. 22. 23:59
def solution(N): # write your code in Python 3.6 temp = format(N, "b") answerList = [] index = 0 #for i in range(len(temp)): while index < len(temp)-1: if temp[index] == '1': len_binary = 0 for j in range(index+1, len(temp)): if temp[j] == '1': if len_binary != 0: answerList.append(len_binary) index = j break else: index = j break else: len_binary += 1 index = j + 1 else: index += 1 if len(answerList) == 0: return 0 else: return max(answerList)
index = j 부분을
index = j + 1로 놓고 왜 안되지 200번 하다가
기쁜맘 억울한 맘으로 해결,
본격 코테 준비를 시작하는데 학교 과제 급급하게 하던 버릇 ( 문제보고 키보드 먼저 치면서 풀기)
반드시 문제를 충분히 단계별로 구상하고 그것을 코드로 나타내는 연습이 필요함을 다시 느낀다.
1. input값 binary string으로 변환
2. 1을 만나면 다시 1을 만날 때, binary gap 정답 리스트에 추가
3. 그리고 다시만난 1의 index를 그대로 while 문에 전달
4. answerList가 비어있다면 return 0, answerList가 비어있지 않다면, return max(answerList)
728x90'공부 > 알고리즘' 카테고리의 다른 글
[python] Codility Lesson 3-1. FrogJmp (0) 2021.07.24 [python] Codility Lesson 2-2. OddOccurrencesInArray (0) 2021.07.23 [python] Codility Lesson 2-1. CyclicRotation (0) 2021.07.23 회문(回文, palindrome) 알고리즘 구현 by Python (0) 2021.03.08 재귀 알고리즘 구현 by Python (0) 2021.03.03