競技プログラミング day4
問題
回答
n,a,b = gets.split.map(&:to_i) def function(people,train_fare,taxi_fare) train_fare = caliculat_train_fare(people,train_fare) if train_fare > taxi_fare taxi_fare else train_fare end end def caliculat_train_fare(people, train_fare) people * train_fare end puts function(n,a,b)
流れ説明
1、値を受付
n,a,b = gets.split.map(&:to_i)
2、算出メソッドを作成
def function(people,train_fare,taxi_fare) train_fare = caliculat_train_fare(people,train_fare) if train_fare > taxi_fare taxi_fare else train_fare end end def caliculat_train_fare(people, train_fare) people * train_fare end
電車賃を求めるメソッドは切り分けた。 if分で電車賃とタクシーを比較し安い方をreturnする。
3、答え表示
puts function(n,a,b)
工夫ポイント
特になし。
学びポイント
特になし。
感想
- 困ったらif書く癖あるんだけどなんかダサくてやだな
もう少し工夫したらもっとDRYにできそう。 コード長くて複雑な処理になると無駄にメモリ食うから気をつけないと。
極限までDRYにするとこんな感じ。
n,a,b = gets.split.map(&:to_i)
puts [n * a , b].min
所有時間
15分程度