Algorithm/프로그래머스
[프로그래머스] Lv2 - 이진 변환 반복하기 (파이썬)
_temp
2022. 5. 4. 11:41
코딩테스트 연습 - 이진 변환 반복하기
programmers.co.kr
def solution(s):
answer = [0, 0]
while s != '1':
len_s = len(s)
s = ''.join(s.split('0'))
len_ns = len(s)
s = bin(len(s))[2:]
answer[0] += 1
answer[1] += len_s - len_ns
return answer
풀이
1. while문 (1이 될 때까지)
- 0을 제거
- 그 길이를 2진수로 바꿈
- answer[0] : 횟수 += 1, answer[1] : 0 제거 횟수 += 1
2. answer 리턴
bin을 이용해서 이진수로 바꾸면 앞에 쓸모없는 문자열이 있어서 [2:] 슬라이싱을 해줘야 한다.
0을 제거할 때는 split을 이용하여 join 해주었다.