알고리즘 공부 ⌨/프로그래머스
[프로그래머스 Level 2] 이진 변환 반복하기 Python3 / JavaScript
고짬이
2021. 8. 6. 23:15
문제 주소 및 출처 ❕
https://programmers.co.kr/learn/courses/30/lessons/70129
코딩테스트 연습 - 이진 변환 반복하기
programmers.co.kr
문제 : Level 2 이진 변환 반복하기
언어 : Python3 / JavaScript
💬 나의 코드
📌 Python3
# 10진수 => 2진수
def two(x):
if x < 2:
return x
else:
return x % 2 + two(x//2)*10
def solution(s):
zero = cnt = 0
while s != "1":
# 반복 횟수
cnt += 1
# 0 개수
zero += s.count("0")
# 1의 개수를 이진수로 변경
s = str(two(s.count("1")))
answer = [cnt, zero]
return answer
📌 JavaScript
function solution(s) {
var zero = 0
var cnt = 0
while (s !== "1") {
cnt += 1
var cnt_zero = 0
var cnt_one = 0
for (let x of s) {
if (x === "1") {
cnt_one += 1
} else {
cnt_zero += 1
}
}
zero += cnt_zero
s = cnt_one.toString(2)
}
var answer = [cnt, zero]
return answer
}