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

f:id:ryoutaku_jo:20190616012728p:plain

【目次】

【本題】

振り返り

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

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

f:id:ryoutaku_jo:20190616013234p:plain

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

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

f:id:ryoutaku_jo:20190616013103p:plain

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

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

《今日の学習進捗(3年以内に10000時間に向けて)》

6日後の社内勉強会用に資料作成中。リーダブルコード関連でやるということは決めたけど、そのまま本の内容をやるだけでは芸がないので、色々アイデアを練っていたら、めっちゃ時間過ぎてた・・・

学習開始からの期間 :190日
今日までの合計時間:1844h
一日あたりの平均学習時間:9.8h
今日までに到達すべき目標時間:1735h
目標との解離:109h
「10,000時間」まで、

残り・・・「8156時間!」