ねむーの日記~AtCoderな日々~

福岡に住むプログラミング好きのブログです!

三井住友信託銀行プログラミングコンテスト2019 C - 100 to 105

毎日鍋を食べてしまいます、ねむーです。

今回はAtCoder(https://atcoder.jp/contests/sumitrust2019/tasks/sumitb2019_c)にて開催されました、三井住友信託銀行プログラミングコンテスト2019 C問題「C - 100 to 105」の問題と僕との戦闘記です。

0.はじめに

今回も、プログラミング言語C#を使用しています。

1.問題文

AtCoder 商店では、以下の 6 種類の品物が 1000000 個ずつ売られています。

  • 1 個 100 円のおにぎり
  • 1 個 101 円のサンドイッチ
  • 1 個 102 円のクッキー
  • 1 個 103 円のケーキ
  • 1 個 104 円の飴
  • 1 個 105 円のパソコン

高橋君は、合計価格がちょうど X 円となるような買い物をしたいです。そのような買い方が存在するか判定してください。 ただし、消費税は考えないものとします。

2.制約

  • 1 ≤ X ≤ 100000
  • X は整数

3.入力例

  • 入力
615
  • 出力
1

4.初見の感想

  • 入力数字の100以上の値と100以下の値が重要
  • 入力数字を100で割ったら何個ぐらい買ったかがわかる
  • 100以下は購入個数×5以下まで再現できる

5.学びポイント

  • 実は2000以上は必ず再現できる(20個以上買うので100円~105円のコンビネーションで再現できる)

6.コードと簡単な解説

using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
    static void Main(string[] args)
    {
        int X = int.Parse(Console.ReadLine());
        if (X >= 2000) { Console.WriteLine("1"); }
        else
        {
            if (X % 100 <= (X / 100) * 5) { Console.WriteLine("1"); }
            else { Console.WriteLine("0"); }
        }
    }
}

7.最後に

こういうの気付くのどう訓練すればいいんでしょうね?