Level 2. くりかえしにしんへんかん
6610 ワード
くりかえしにしんへんかん
練習エンコーディング>月次コードフィルタ第1四半期>繰返しバイナリ変換
https://programmers.co.kr/learn/courses/30/lessons/70129
問題の説明
# 문제 정리
- 입력: 이진수 문자열
- 과정:
1. 변환 횟수와 해당 과정에 있어 발생하는 '0'의 갯수의 초기값을 0,0으로 설정한다.
2. while문을 이용하여 입력한 이진수 문자열의 값이 '1' 이 될 때 까지
1) 해당 단계에서 문자열의 '0'개수를 구하여 더한다.
2) 해당 단계에서 문자열의 '1'개수를 구하여 bin()[:2]한다. 이 때, [:2]를 취함은 bin()을 적용 시 '0bxxxx'형태로 나타나기 때문이다. 다른 방법으로는 format(n,'b')가 있다.
3) 변환 횟수에 1을 더한다.
3. 위의 과정을 종료한 후 변환 횟수와 해당 과정에 있어 '0'의 개수를 리스트 형태로 출력한다.
問題を解く
# Input value
s = "110010101001"
cnt, zero = 0,0 # Set initial value: cnt:number of transform, zero: number of '0' value
while s != '1': # Before s = '1'
zero += s.count('0') # Count number of '0'
s = bin(s.count('1'))[2:] # Consider bin()[2:] because bin() = '0bxxxx'
cnt += 1 # Count number of transform
[cnt,zero]
これは簡単な問題です.完全なコード
def solution(s):
[cnt, zero] = [0, 0]
while s != '1':
zero+=s.count('0')
# s = format(s.count('1'),'b')
s = bin(s.count('1'))[2:]
cnt+=1
return [cnt, zero]
Reference
この問題について(Level 2. くりかえしにしんへんかん), 我々は、より多くの情報をここで見つけました https://velog.io/@pear_min/Level-2.-이진-변환-반복하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol