728x90
🍒문제
programmers.co.kr/learn/courses/30/lessons/70129
🍒풀이
1. after : 0을 제거한 문자열
2. c = len(after)
3. res : c를 2진법으로 변환한 수
4. s = res 로 갱신
위 1~3번 과정 반복 (s="1" 이 될 때 까지)
🍒코드
def solution(s):
answer = []
cnt = 0
cnt_zero = 0
while(True):
if(s == "1"):
break
# 0 제거
after = ''
for i in s:
if i == '0':
cnt_zero += 1
continue
else:
after += i
#x의 길이 = c
c = len(after)
#c를 이진법으로 표현
res = 0
idx = 1
while(c > 0):
r = c % 2
res += r * idx
idx = idx * 10
c = c//2
s = str(res)
#print(s, res)
cnt += 1
answer = [cnt, cnt_zero]
return answer
728x90
'코딩 테스트' 카테고리의 다른 글
[프로그래머스] 문자열 압축 (Python) (0) | 2021.03.22 |
---|---|
[기타] 시간 복잡도 / 예외처리 (0) | 2021.03.20 |
[프로그래머스] 메뉴 리뉴얼 (Python) (0) | 2021.03.18 |
[프로그래머스] 큰 수 만들기 (Python) (0) | 2021.03.18 |
[프로그래머스] 조이스틱 (Python) (0) | 2021.03.18 |
댓글