るびらな!

RubyをLearnする人の勉強記録。(超)弩(級の)素人なので、誰かダメさがわかる人に罵ってもらったりして、少しずつ知見を広げたいと思っています。

ITP1_4_D Min, Max and Sum

ここも押していただけると嬉しいです #=> にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ Rubyへ にほんブログ村 IT技術ブログ Ruby on Railsへ

さて、最近は何だか環境構築記録みたいになってましたが、別のPCからAOJの記録でも書いてみる。

前回のAOJの記事からすでに半月ほど経過していました(滝汗)


ITP1_4_C Simple Calculator@Ruby - るびらな!

というわけで、今日の問題はこちら #=> 最小値, 最大値, 合計値 | プログラミング入門 | Aizu Online Judge

問題

最小値、最大値、合計値

n 個の整数 ai(i=1,2,...n)を入力し、それらの最小値、最大値、合計値を求めるプログラムを作成してください。


Input

1行目に整数の数 n が与えられます。2行目に n 個の整数 ai が空白区切りで与えられます。


Output

最小値、最大値、合計値を空白区切りで1行に出力してください。

なるほど、最初の整数の数は、Rubyではいらない気がするけど、まぁいっか。

自分のコード

i = gets.to_i
nums = gets.split.map(&:to_i)
sum = 0
cnt = 0
i.times do
    sum = sum + nums[cnt]
    cnt += 1
end
 
print nums.sort.first," ",nums.sort.last," ",sum,"\n"

なんとも無駄が多くて美しくないコードですが、これで一応実行速度は最速タイ。

他の人のコード

見た目がきれいな人

x = gets
a = gets.split.map(&:to_i)
puts [a.min, a.max, a.inject(:+)].join " "

あ、うん。こういうコードが書きたかった。
なんで、あんなに汚くなっちゃったんだろう…

感想

やっぱり、きれいで無駄のないコードは大事。

ちゃんとメソッド調べよう。