문제
https://school.programmers.co.kr/learn/courses/30/lessons/70129
설계
- 내장함수를 사용하지 않고 직접 2진수를 구현했다.
import math
def cal(n):
global zero, cnt
data = list(n)
arr = [] # 0이 제거된 배열
# 0 제거
for i in data:
if i != '0':
arr.append(i)
else:
zero += 1
if arr == ['1']:
return '1'
# 숫자 변환
new_arr = ''
for i in range(len(arr)):
new_arr += arr[i]
number = int(new_arr)
number2 = len(str(number))
# 진수 변환
bucket = []
while number2 >= 1:
bucket.append(number2 % 2)
number2 = math.floor(number2 / 2)
bucket.reverse()
result = ''
for i in bucket:
result += str(i)
return result
def solution(s):
global zero, cnt
cnt = 0
result = s
while result != '1':
result = cal(result)
cnt += 1
return [cnt, zero]
zero, cnt = 0, 0
'PS (Problem Solving) > Programmers' 카테고리의 다른 글
[프로그래머스] 숫자의 표현 (0) | 2022.10.23 |
---|---|
[프로그래머스] 올바른 괄호 - 자바스크립트, 파이썬 (0) | 2022.10.22 |
[프로그래머스] 최솟값 만들기 (0) | 2022.10.15 |
[프로그래머스] JadenCase 문자열 만들기 (0) | 2022.10.14 |
[프로그래머스] 최댓값과 최솟값 (0) | 2022.10.13 |