알고리즘[Python]/프로그래머스
[ Lv 2 ] 이진 변환 반복하기
병훈1234
2021. 6. 29. 09:42
풀이과정
1. 1의 개수를 카운트해준다. 이 때 0의 개수도 같이 카운팅
2. 1의 개수의 길이를 bin 함수를 사용하여 2진수 형태로 변환
3. 해당 결과값이 1일때까지 반복.
4. 몇번 진행하였는지, 몇개의 0을 제거하였는지 리턴
def convert(s):
return bin(s)[2:]
def solution(s):
answer = []
zero = 0
step = 0
while True:
temp = []
for n in s:
if n == '0':
zero += 1
else:
temp.append(n)
t = convert(len(temp))
step += 1
s = t
if s == '1':
break
answer = [step, zero]
return answer
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges