[プログラマー(Ruby)]2大数
5255 ワード
📌 レベル2最大数
💻 言語:Ruby
🗒️ 問題の説明
0または正の整数を指定すると、最大の整数を見つけます.
例えば、与えられた整数が[6,10,2]である場合、最大数が6210である[610261010621026102106]を作成することができる.
パラメータに指定された配列番号が0または正の整数の場合、作成可能な最大番号を文字列に変換して戻すソリューション関数を作成します.
せいげんじょうけん
numbersの長さは1または10万以下です.
numbersの要素は1000を超えない.
答えが大きすぎるかもしれませんが、文字列に置き換えて返してください.
input
numbers = [6, 10, 2] => "6210"
numbers = [3, 30, 34, 5, 9] => "9534330"
▼▼解決コード
def solution(numbers)
number_permutations = numbers.permutation(numbers.length).to_a
answer = number_permutations.map(&:join).map(&:to_i).max.to_s
return answer
end
上のコードにruntimeerrorが表示され、以下のように変更されました.def solution(numbers)
return numbers.permutation.map(&:join).uniq.max
end
テストコードはパスしましたが、タイムアウトしたので、コードを再修正しました.def solution(numbers)
results = numbers.map(&:to_s).sort { |a, b|
a = a.length == 1 ? a * 3 : a
a = a.length == 2 ? a + "0" : a
b = b.length == 1 ? b * 3 : b
b = b.length == 2 ? b + "0" : b
b <=> a
}
return results.join
end
上記のコードを使用すると、タイムアウトのエラーは発生しません.
正解率は40に近い...
もう一度考えてみたほうがいい.
課題1
[40, 403] => 40403
[1000, 0, 5, 99, 100] => "99510010000"
[0, 5, 10, 15, 20] => "52015100"
解決する
サムネイル:https://www.klipfolio.com/blog/algorithm-in-six-steps
Reference
この問題について([プログラマー(Ruby)]2大数), 我々は、より多くの情報をここで見つけました
https://velog.io/@jinsu6688/프로그래머스Ruby-2.-가장-큰수
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def solution(numbers)
number_permutations = numbers.permutation(numbers.length).to_a
answer = number_permutations.map(&:join).map(&:to_i).max.to_s
return answer
end
def solution(numbers)
return numbers.permutation.map(&:join).uniq.max
end
def solution(numbers)
results = numbers.map(&:to_s).sort { |a, b|
a = a.length == 1 ? a * 3 : a
a = a.length == 2 ? a + "0" : a
b = b.length == 1 ? b * 3 : b
b = b.length == 2 ? b + "0" : b
b <=> a
}
return results.join
end
Reference
この問題について([プログラマー(Ruby)]2大数), 我々は、より多くの情報をここで見つけました https://velog.io/@jinsu6688/프로그래머스Ruby-2.-가장-큰수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol