320x100
https://school.programmers.co.kr/learn/courses/30/lessons/70129
이진법 문제는 아니었고, bin() 함수와 조건만 잘 구현하면 쉽게 풀 수 있었다.
def solution(s):
answer = []
# s -> 1이 될 때까지 이진 변환 횟수와 지워진 0의 개수 return
total_zeros = 0
bin_count = 0
while True:
bin_count += 1 # 이진 변환 횟수
zero_count = 0 # s 내 0 개수 세기
for i in range(len(s)):
if s[i] == '0' :
zero_count += 1
total_zeros += zero_count
if len(s) - zero_count == 1: # s = '1'이면 종료.
break
else: # 아니면, 길이를 이진수로 변환
s = bin(len(s) - zero_count)[2:]
answer.append(bin_count)
answer.append(total_zeros)
return answer
'코딩테스트' 카테고리의 다른 글
[파이썬] 불량 사용자 - 2019 카카오 개발자 겨울 인턴십 [CODING TEST #32] (0) | 2022.08.01 |
---|---|
[파이썬] 행렬의 곱셈 [CODING TEST #31] (0) | 2022.08.01 |
[파이썬] 주차 요금 계산 - 2022 KAKAO BLIND RECRUITMENT [CODING TEST #29] (0) | 2022.07.31 |
[파이썬] 2개 이하로 다른 비트 - 월간 코드 챌린지 시즌2 [CODING TEST #28] (0) | 2022.07.30 |
[파이썬] 카펫 [CODING TEST #27] (0) | 2022.07.29 |
댓글