[LeetCode] Partitioning Into Minimum Number Of Deci-Binary Numbers


📃 問題の説明


Partitioning Into Minimum Number Of Deci-Binary Numbers


[質問元:LeetCode]

👨‍💻 解決策


0と1のみからなり、1から始まる数をdeci-baryと呼ぶ.
nがdeci−baryの和である場合、必要な最小deci−bary個数だけが必要である.
最初は問題が理解できなかった.
最終的には0と1のみからなる数の和でnを生成するので,nに含まれる最大値を求めればよい.(9を作成するには、少なくとも1に9回加算してください)
max(n)で最大値を求めて解きました
もう一つのゴムを見て額をパチパチ!打った.
for i in range(9, -1, -1):
	if str(i) in n:
		return i
上記の方法でnで最大値を検索することもできます.
return max(set(n))
これによりsetを利用して時間の複雑さを減らすことができる.
どうして思いもよらなかったの
実はできていないのではなく、やっていないのです...
問題をするときは、もっと良い方法があるかどうかを考える習慣を身につけなければなりません.
あら!

👨‍💻 ソースコード

class Solution:
    def minPartitions(self, n: str) -> int:
        for i in range(9, -1, -1):
            if str(i) in n:
                return i