1def solution(s):
2 answer = []
3 cnt = 0
4 zero_cnt = 0
5
6 while len(s) != 1:
7 zero = s.count('0')
8 s = str(bin(len(s)-zero)).split('b')[1]
9 cnt += 1
10 zero_cnt += zero
11
12 return [cnt, zero_cnt]
문제
- 이진변환을 다음과 같이 정의한다
1. x의 모든 0을 제거한다
2. x의 길이를 c라고 하면, x를 ‘c를 2진법으로 표현한 문자열’로 바꾼다
- s가 ‘1’이 될때까지 이진변환을 가했을 때,
- [이진변환의 횟수, 제거된 모든 0의 개수]를 반환하라
- TC
- input
s : “110010101001”
- ouput
[3, 8]
- input
해결방법
- 이진변환을 반복하면서 0의 개수를 세어주었다
- bin함수를 사용하여 2진수로 바꾸면 생기는 ‘0b’를 제거해주었다