Python 적응 문제풀이입니다. 손에 익히기 위해 비교적 쉬운 문제들을 풀며 적응하고 있습니다.
문제
https://school.programmers.co.kr/learn/courses/30/lessons/70129
[나의 풀이]
def convert(cnt_zero,s):
cnt_zero_now = 0
s = list(s)
org_len = len(s)
for i in range(org_len):
if s[i] == '0':
s[i] = ""
cnt_zero += 1
cnt_zero_now += 1
return cnt_zero , "{0:b}".format(org_len-cnt_zero_now)
def solution(s):
cnt = 0
cnt_zero = 0
check = True
while check:
bh_s = s
cnt_zero,s = convert(cnt_zero,s)
aft_s = s
if bh_s == aft_s :
check = False
else:
cnt += 1
answer = []
answer.append(cnt)
answer.append(cnt_zero)
return answer
문제 정의는 어렵지 않았지만 코드를 간략히 작성하는데 신경쓰다보니 시간이 좀 걸린 문제였습니다.🦌🦌🦌
다른 풀이에서 더욱 간단한 풀이법을 볼 수 있었습니다.
def solution(s):
a, b = 0, 0
while s != '1':
a += 1
num = s.count('1')
b += len(s) - num
s = bin(num)[2:]
return [a, b]
감사합니다.🐄🐄🐄