Programmers-繰り返しバイナリ変換(Python)
問題の説明
0と1からなる任意の文字列xに対して、次のバイナリ形式のコピーを定義します.
パラメータが0と1の文字列s.sが「1」になるまでsをバイナリ変換し続け、バイナリ変換の回数と変換中に削除されたすべての0の個数を配列に入れて返します.
せいげんじょうけん
I/O例
sresult"110010101001"[3,8]"01110"[3,3]"1111111"[4,1]
I/O例説明
I/O例#1
ハーモニー def solution(s):
answer = []
# (1)
cnt_binary = 0
# (2)
cnt_zero = 0
while 1:
# (3)
if s == "1":
break
# (4)
cnt_binary += 1
# (5)
cnt_zero += s.count("0")
# (6)
s = s.replace("0", "")
# (7)
len_s = len(s)
# (8)
s = bin(len_s)[2:]
# (9)
answer.append(cnt_binary)
answer.append(cnt_zero)
return answer
s = "110010101001"
print(solution(s)) # 결과 예 : [3,8]
(1):バイナリ変換回数を決定するための変数cnt binary
(2):sごとに存在する0個の数を決定する変数cnt zero.
(3):while文終了条件
(4):whileドアが閉まらない場合cnt 1が増加
(5):sに存在する「0」の個数を決定し、cnt 0に加算する
(6):replace()メソッドを使用して、sの0を毎回削除する
(7):sに存在する1の個数がlen(s)に等しく、len s変数に割り当てられる
(8):len sをバイナリ値に変換し、sを再入力
(9):while文が終了すると,最終的に求めたcnt binary,cnt zeroを解答に割り当てる.
📝 結果
😃 に感銘を与える
過去に
def solution(s):
answer = []
# (1)
cnt_binary = 0
# (2)
cnt_zero = 0
while 1:
# (3)
if s == "1":
break
# (4)
cnt_binary += 1
# (5)
cnt_zero += s.count("0")
# (6)
s = s.replace("0", "")
# (7)
len_s = len(s)
# (8)
s = bin(len_s)[2:]
# (9)
answer.append(cnt_binary)
answer.append(cnt_zero)
return answer
s = "110010101001"
print(solution(s)) # 결과 예 : [3,8]
😃 に感銘を与える
過去に
👍 Irishのすべてのコードを表示
-> Irish Github
Reference
この問題について(Programmers-繰り返しバイナリ変換(Python)), 我々は、より多くの情報をここで見つけました
https://velog.io/@irish/Programmers-이진-변환-반복하기Python
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(Programmers-繰り返しバイナリ変換(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@irish/Programmers-이진-변환-반복하기Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol