思考のジャンプ幅が狭いなら,飛ぶ回数で補えばいいじゃない!!

非情報系30歳が競技プログラミングやWeb開発を始めるとどうなるか?

AtCoder Beginner Contest 064 D - Insertion

目次

  • 目次
  • 結論
  • はじめに
  • 想定読者
  • 筆者の実力
  • 記事の特徴
  • 問題のリンク
  • 発想・解法とそれらを引きだすための方法・解釈
    • 考察のキモ(Key Insight)は?
    • どうしたら思いつけそうか?
    • 実装のポイントは?
  • Python3による回答例
  • 得られた知識・知見
  • 感想
  • 参考
  • 更新履歴

結論

  • 辞書順最小とするには,'('が不足している場合は左端に追加したほうがよく,')'が不足している場合は右端に追加したほうがいい.

  • 括弧'('')'を整数の正負の扱いに変換して,一つの変数で管理する.

はじめに

  • AtCoderで出題された問題を復習しています.

  • 公式解説や上位陣による解説ブログを読んで,自分に足りなかった部分や得られた知見を消化してアウトプットしようと思います.

続きを読む

AtCoder Beginner Contest 131 E - Friendships

目次

  • 目次
  • 結論
  • はじめに
  • 想定読者
  • 筆者の実力
  • 記事の特徴
  • 問題のリンク
  • 発想・解法とそれらを引きだすための方法・解釈
    • この問題の難しいところ
    • 最初の一歩は?
    • 考察のキモ(Key Insight)は?
    • どうしたら思いつけそうか?
    • 実装のポイントは?
  • Python3による回答例
  • 得られた知識・知見
  • 感想
  • 参考
  • 更新履歴

結論

  • さまざまなグラフを書いてみる.

  • グラフ理論に対する知識・理解を深める.スターグラフの存在を知っている(もしくは図として描ける)かどうか?

  • 構築問題のアプローチ方法の一つとして,条件を満たす上限値・下限値を理論的に導出できないか を試す.

  • 上記で得られた上限値・下限値から,目標に近づけられないか試す.

はじめに

  • AtCoderで出題された問題を復習しています.

  • 公式解説や上位陣による解説ブログを読んで,自分に足りなかった部分や得られた知見を消化してアウトプットしようと思います.

続きを読む

#100DaysOfCode day33 Ruby on Rails(7)

目次

  • 目次
  • 結論
  • 何を達成したい(作りたい)か?
  • 何ができないか?
  • 学んだこと
  • 何ができるようになったか?
    • フォームの入力内容を受け取ろう
    • updateアクションの中身を作ろう
  • 次に何をやるべきか?
  • 感想
  • 参考

結論

  • フォームのデータをform_tagメソッドを使って,updateアクションに送信する.

  • updateアクションでは,paramsから取り出す.

続きを読む

AtCoder Beginner Contest 068 D - Decrease (Contestant ver.)

目次

  • 目次
  • 結論
  • はじめに
  • 想定読者
  • 筆者の実力
  • 記事の特徴
  • 問題のリンク
  • 発想・解法とそれらを引きだすための方法・解釈
  • Python3による回答例
  • 得られた知識・知見
  • 感想
  • 参考
  • 更新履歴

結論

  • 操作の終了後の状態から最初の状態に戻っていくことを試す.

  • シミュレーション回数が大きくなりそうなときは,周期性が見つからないか小さいサンプルで書き出してみる.

はじめに

  • AtCoderで出題された問題を復習しています.

  • 公式解説や上位陣による解説ブログを読んで,自分に足りなかった部分や得られた知見を消化してアウトプットしようと思います.

続きを読む

AtCoder Beginner Contest 109 D - Make Them Even

目次

  • 目次
  • 結論
  • はじめに
  • 想定読者
  • 筆者の実力
  • 記事の特徴
  • 問題のリンク
  • 発想・解法とそれらを引きだすための方法・解釈
  • Python3による回答例
  • 得られた知識・知見
  • 感想
  • 参考
  • 更新履歴

結論

  • 奇数枚のマスのコインを,別の奇数の枚数のコインがあるマスに移動させる.

  • 一筆書きの要領で,すべてのマスをチェックする.

はじめに

  • AtCoderで出題された問題を復習しています.

  • 公式解説や上位陣による解説ブログを読んで,自分に足りなかった部分や得られた知見を消化してアウトプットしようと思います.

続きを読む

#100DaysOfCode day32 Ruby on Rails(6)

目次

  • 目次
  • 結論
  • 何を達成したい(作りたい)か?
  • 何ができないか?
  • 学んだこと
  • 何ができるようになったか?
    • 投稿編集ページを用意しよう
    • フォームを用意しよう
  • 疑問点・解決方法の案
  • 次に何をやるべきか?
  • 感想
  • 参考

結論

  • 編集用のルーティング・コントローラ・ビューを用意した.

  • 詳細ページに編集用のリンクを追加した.

  • 編集用フォームに,初期値を設定できるようにした.

続きを読む

#100DaysOfCode day31 Ruby on Rails(5)

目次

  • 目次
  • 結論
  • 何を達成したい(作りたい)か?
  • 何ができないか?
  • 学んだこと
  • 何ができるようになったか?
    • 投稿の編集をしよう
    • 投稿の削除をしよう
  • 疑問点・解決方法の案
  • 次に何をやるべきか?
  • 感想
  • 参考

結論

  • 投稿の編集・削除の手順をrails consoleで実践した.
続きを読む

#100DaysOfCode day30 Ruby on Rails(4)

目次

  • 目次
  • 結論
  • 何を達成したい(作りたい)か?
  • 何ができないか?
  • 学んだこと
  • 何ができるようになったか?
    • 新規投稿ページを作成しよう
    • 入力フォームを作成しよう
    • 投稿を保存する準備をしよう
    • 投稿一覧ページに転送しよう
      • リダイレクト
    • 投稿内容を保存しよう
      • 変数paramsの2通りの使い方
    • 投稿を並び替えよう
  • 転用
  • 疑問点・解決方法の案
  • 次に何をやるべきか?
  • 感想
  • 参考

結論

  • 新規投稿を行うために,ルーティング・newアクションを追加した.

  • 入力フォームの作成には,HTMLのtextareaタグとinputタグを使用した.

  • フォームからの情報を送信するために,createアクションを作成した.ルーティングでは,postメソッドを指定する.

  • さらに,フォーム側ではform_tagで送信先(createアクション)を指定し,createアクションでは一覧にリダイレクト(転送)するようにした.

  • フォームから受け取ったデータは,params[:attr]で取り出せる.このデータをDBに保存する.

  • 一覧は,orderメソッドを使うことで,表示の順序を変えることも可能.

続きを読む

#100DaysOfCode day29 Ruby on Rails(3)

目次

  • 目次
  • 結論
  • 何を達成したい(作りたい)か?
  • 何ができないか?
  • 学んだこと
  • 何ができるようになったか?
    • 自動生成されるカラムを確認しよう
    • find_byメソッドで投稿を取得しよう
    • 投稿詳細ページを作成しよう
    • URLからidを取得しよう
    • 詳細ページに投稿を表示しよう
    • 詳細画面へのリンクを作成しよう
  • 転用
  • 疑問点・解決方法の案
  • 次に何をやるべきか?
  • 感想
  • 参考

結論

  • 新たにページを作成するときは,ルーティング・アクション・ビューが必要.

  • params[:id]とfind_byメソッドを組み合わせると,URLに対応した投稿を表示できる.

  • 投稿一覧ページに,各投稿の詳細ページへのリンクを作成する.

続きを読む

AtCoder Beginner Contest 070 D - Transit Tree Path

目次

  • 目次
  • 結論
  • はじめに
  • 想定読者
  • 筆者の実力
  • 記事の特徴
  • 問題のリンク
  • 発想・解法とそれらを引きだすための方法・解釈
  • Python3による回答例
  • 得られた知識・知見
  • 感想
  • 参考
  • 更新履歴

結論

  • 題意を満たしながら,複雑な条件をシンプルに分割&個別に求めて,最後にまとめることができないか試す.

  • 最短距離を求めるときに,経路が決まっていなければダイクストラ法が,経路が決まっているときは幅優先探索が候補となる.

はじめに

  • AtCoderで出題された問題を復習しています.

  • 公式解説や上位陣による解説ブログを読んで,自分に足りなかった部分や得られた知見を消化してアウトプットしようと思います.

続きを読む