【AtCoder:6回目】diverta 2019 Programming Contest 2の振り返り(Ruby)

【目次】

【本題】

振り返り

今回は 6/9(日)に開催されたAtCoder Beginner Contest 129の振り返りを行います。

今回は1問しか回答できませんでした・・・

やっぱりアルゴリズムの勉強しないと、300点以上の問題を突破するのは厳しいですね・・・

業務のキャッチアップがあるので、なかなか勉強する時間が取れない・・・

A - Ball Distribution

問題文 高橋君は N 個のボールを K 人に配ろうとしています。

それぞれの人がボールを 1 個以上受け取るような配り方の中で、ボールが最も多い人と最も少ない人のボールの個数の差が最大で何個になるか求めてください。

制約 1 ≤ K ≤ N ≤ 100 入力は全て整数である

全員に1個づつボールを配り切って、残りを一人に配れば、それが差が最大になるパターンです。

また、一人しかいない場合は、差は0にする必要があります。

そう考えて、作ったコードがこちらです。

n,k=gets.split.map &:to_i
 
if k == 1
  puts 0
else
  puts n - k
end

でも、もっと良い方法がありました。

n,k=gets.split.map &:to_i
puts n%k

剰余を求めても同じ結果が得られました・・・