問題
回答
a,b,c = gets.split.map{|n| n.to_i} puts (x = c - (a - b)) < 0 ? 0 : x
流れ説明
■ 流れ1
gets.split.map{|n| n.to_i}
実行時に打ち込まれた数値をint型に変更してa,b,cに代入 ちなみに以下の書き方でもOK
a,b,c = gets.split.map(&:to_i)
■ 流れ 2
puts (x = c - (a - b)) < 0 ? 0 : x
三項演算子を利用
1. (a - b) -> 容器1に容量bミリリットルの水を入れる。a -b = 容量Aに入る残り容量ミリリットル
2. c - (a - b) -> 容器2に入っているcミリリットルを容量1に写す
3. もし2の答えがマイナスの場合は0と表示させる(容量マックス状態)
4. もしマイナスでなければ容量Aに入る残り容量を表示させる。
学びポイント
意外と頭使うメモとペンで頭の中整理しないと辛い....
値受け取る箇所eachだとto_iが反映しなくてmapでないとn.to_iにならなかったけど。
なぜだろう....eachとmapの挙動の違いが原因だと思うけど...
a,b,c = gets.split.map{|n| n.to_i}