反復バイナリフォーマットコピー[プログラマ]
4234 ワード
出典:プログラマーコードテスト練習、反復バイナリフォーマットコピー[プログラマ]
1.与えられた
2.繰り返しごとにバイナリ変換が1回加算されるので、毎回
3.正規表現を使用して文字列からすべての0を減算します.
4.最初の文字列から0を減算し、文字列から1の個数を求める.
5.
に答える
1.与えられた
s
が1である前に、ループ文.2.繰り返しごとにバイナリ変換が1回加算されるので、毎回
count
1が加算されます.3.正規表現を使用して文字列からすべての0を減算します.
4.最初の文字列から0を減算し、文字列から1の個数を求める.
5.
bin()
を文字列長のバイナリ数とする.このときbin()
の前に0b
を付けているので外します.コード#コード#
import re
def solution(s):
count, count_zero = 0, 0
while s != '1':
count += 1
new_s = re.sub('0', '', s)
count_zero += len(s) - len(new_s)
s = bin(len(new_s))[2:]
return count, count_zero
def solution(s):
count, count_zero = 0, 0
while s != '1':
count += 1
count_one = s.count('1') # 정규표현식을 사용하지 않고 count()을 이용해서 푸는 것이 더 깔끔한 것 같다.
count_zero += len(s) - count_one
s = bin(count_one)[2:]
return count, count_zero
に感銘を与える
bin()
メソッドを使用する場合は、前に0b
が貼ってあることに注意して戻ってください!負数の場合は、-0b
付きで返却します.Reference
この問題について(反復バイナリフォーマットコピー[プログラマ]), 我々は、より多くの情報をここで見つけました https://velog.io/@yunu/프로그래머스-이진-변환-반복하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol