0
0

More than 3 years have passed since last update.

配列のパターン計算、摘出のプログラム

Posted at

練習でプログラムしてたのでアウトプットです。
今回は個人的にスッキリしたコードになりました。

qiita.rb
number = gets.chomp.split(' ').map{|i| i .to_i}
total = []

number.permutation(4) do |n|
  total.push((n[0]*10+n[1]) + (n[2]*10 + n[3]))
end

puts total.max

・入力した4つの数字を2つに切り分けて、それぞれに10の位、1の位を与える。
・できた2けたの数字を加算する。
・それを予め入力した4つの数字のならび全てに適用する
・その合計値が一番大きいものを出力しました。

わかりにいくいと思うので下記処理内容です。

qiita.rb
#入力した値
 1 2 3 4  

#パターン出力
46 ←12+ 34
55 ←34+ 21
37 以下全パターン
55
37
46
55
64
37
64
37
55
55
73
46
73
46
55
64
73
55
73
55
64

#最大値 73

※実際はパターン出力も省略してます。

これをやるにあたり、何となく処理の流れは思い浮かんだのですが
配列の並びのパターンをどう抽出するか、、、とひたすら調べまくってたら
permutation を見つけました。

参考記事 https://qiita.com/shshimamo/items/5a458ecc88e7c24d5112

もっと時間をかけずに出来るようになりたいですねえ、、
何かアドバイスがあれば是非コメントお待ちしております!

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0