문제
접근
s에 1이 몇개 포함되어 있는지 확인해주면 된다.
s의 길이 - 1의 개수만큼이 0의 개수이므로 한번 s를 변환할 때마다 0의 개수를 카운팅해서 더해주고,
1의 개수로 다시 s를 생성한다.
코드
- 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def solution(s):
answer = [0,0]
while s != '1':
oneCnt = 0
for item in s:
if item == '1':
oneCnt+=1
answer[1] += len(s) - oneCnt
tmp = ''
while oneCnt != 0:
tmp = str(oneCnt % 2) + tmp
oneCnt //= 2
s = tmp
answer[0] += 1
return answer