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

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

AtCoder Beginner Contest 109 D - Make Them Even

目次

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

結論

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

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

はじめに

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

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

続きを読む

AtCoder Beginner Contest 070 D - Transit Tree Path

目次

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

結論

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

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

はじめに

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

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

続きを読む

AtCoder Beginner Contest 129 D - Lamp

目次

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

結論

  • 次の状態が直前の状態に依存していると判断したら,動的計画法を解法の候補に入れる.

はじめに

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

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

続きを読む

AtCoder Beginner Contest 129 C - Typical Stairs

目次

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

結論

  • 次の状態が直前の状態に依存していると判断したら,動的計画法を解法の候補に入れる.

  • 動的計画法の基本は,「何を状態として持つか?」と「どんな遷移をするか?」.

  • シンプルな条件で,どうなるか実験してみる.その後,追加の条件がある場合を考える.

  • 数式(漸化式)で表現できないか試す.

はじめに

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

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

続きを読む

AtCoder Beginner Contest 089 D - Practical Skill Test

f:id:hiro_kato:20190609190212p:plain

目次

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

結論

  • 要求されている処理・手順を全探索をベースとして愚直に書き出す.

  • 実行制限時間を越えそうと判断したら,計算量の削減を考える.

  • データの持ち方や漸化式を用いることが有効な場合がある.

はじめに

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

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

続きを読む

#100DaysOfCode day25 HTML5&CSS3を使ったビューの作成(2)

目次

  • 目次
  • 結論
    • 進捗状況
  • 何を達成したい(作りたい)か?
  • 何ができないか?
  • 実践したこと
  • 何を作っている?
  • なぜ必要?
  • 何ができるようになったか?
  • ハマった点と対処方法
  • 疑問点・課題
  • 次に何をやるべきか?
  • 感想
  • 参考

結論

  • 手持ち&調べたHTML5とCSS3の知識で,クローンアプリのUIを作成中.

  • 見栄えの部分は,前回よりも進捗がみられたと思う.

  • 肝心の掲示板の部分については未着手の状態.チュートリアルを一刻も早く実践する.

進捗状況

今回

f:id:hiro_kato:20190608232238j:plain

前回

f:id:hiro_kato:20190530230120j:plain f:id:hiro_kato:20190530230134j:plain

続きを読む

いまさら聞けないネットワーク基礎【サポーターズCoLab勉強会】のメモ

先日,You Tubeで配信された勉強会のメモです.

間違いなどがありましたら,ご指摘いただけると幸いです.

まとめ

  • 通信は,TCP/IPの階層モデルに従いパケットが作られている.

  • IPアドレス:インターネットにおける住所に相当.

  • ルーティング:目的地までの最適な道を示してあげる仕組み.

  • MAC Address:原則的に一意なアドレス.同じネットワーク内の通信に使用される.

  • インターネット通信におけるデータの送受信.
  • ヘッダー+イーサネットヘッダーを経由電気信号に変換.

講演者情報

  • 岡田奨平さん
  • のなめしゃちょー,ネットワークエンジニア5年目
  • いっとねっと。

ネットワーク基礎

ネットワークとは

  • 家とショップをつなぐ道路がデバイス-サーバをつなぐネットワークに相当
  • データの通り道がネットワーク

通信はどのように行われているのか

受信は逆向き

今回は,ネットワーク層データリンク層が対象.トランスポート層は対象外.難しい.

IPアドレスとルーティング

  • ネットワーク層に相当
  • IP(Internet Protocol):インターネットにおける住所のようなもの
  • IPアドレスに基づいてルーティングが行われる.

今回は,用語を知るのが大事 + IPv4:32bitで構成され,10進数で表現される.一般的に使われる.192.168.1.1/24 + IPv6:128bitで構成され,16進数で表現される.IPv4の枯渇に伴い新しく定義された(20年程度経過) + コアネットワークで使われている.一般に普及するには時間がかかりそう

  • ネットワーク部(マンション名)とホスト部(部屋番号)
    • サブネットマスク:ネットワーク部の範囲 1/24
    • ホスト部がすべて0(2進数表記)であるアドレスをネットワークアドレスと呼ぶ

    • ネットワークアドレス=マンション名

    • IPアドレス:部屋番号(0-255,8bit.0と255は特別なアドレスのため除外)

ルーティングとは?

  • 目的地までの最適な道を示してあげる仕組み
  • ルーティングテーブル:他のマンションに行くための地図に相当するものをデバイス全員が持っている.この地図のこと.
  • 手動orルーティングプロトコルを使用
  • 簡略化するためのデフォルトルート(ゲートウェイ):自分が持っていないときに使う

ARPMACアドレス

  • データリンク層

  • MACアドレスとは?

    • 24bitのベンダーコードと24bitのノード番号で構成される原則的に一意なアドレス
    • 同じネットワーク内の通信で使用される
    • ベンダーコードで,メーカーを調べられる

    • ipconfig

    • route printで調べられる
  • データ+TCP+IP+MAC

    • IP:宛先と送信元
    • MAC:宛先と送信元
    • 小包を届けるようなイメージ
  • 宛先MACアドレスをどう知るのか?

    • ARP(Address Resolution Protocol)を使う.マンション全体に送信して応答.該当しない場合は応答しない
    • ブロードキャストMACアドレス:全員に送れる

    • 異なるネットワークでの通信

    • 家のルータが物理的

    • マンション間に相当
    • MAC Addressの情報がつけかえられていく
  • NICKとIPアドレスはセット

視聴者の質問と回答(聞き取れたもののみ)

  • イーサネット:フレーム

  • IPヘッダーまでパケット

  • 一般データのことをパケットということが多い

  • 大きなデータは,パケット通信データを分割して送る

  • MPU/MSS

資格

  • 希少価値が高い
  • シスコのccentを目指すとよい

おすすめのサイト・書籍

  • 3分ネットワーキング

  • マスタリングTCP/IPの基礎編

  • パケットキャプチャの教科書

感想

  • 参加前はネットワーク=とっつきにくいイメージがありましたが,日常生活に置き換えて説明されている+図が多くて分かりやすかったです.

  • 手を動かして実践する時間もあり,あっという間の1時間でした.

  • 自身はメモを取るだけで精一杯でしたが,視聴者の質問が活発で関心の高さを感じました.

  • キーワードを教えていただけたので,初めて聞いた用語を中心に復習したいと思います.

  • ライブ配信だと地方在住者には大変ありがたいです.

配信元(現在はリンク切れ)

https://www.youtube.com/watch?v=ML4qRu1Omhs

#100DaysOfCode day17 HTML5&CSS3を使ったビューの作成

目次

  • 目次
  • 結論
    • 進捗状況
  • 何を達成したい(作りたい)か?
  • 何ができないか?
  • 実践したこと
  • 何を作っている?
  • なぜ必要?
  • 何ができるようになったか?
  • ハマった点と対処方法
  • 疑問点・課題
  • 次に何をやるべきか?
  • 感想
  • 参考

結論

  • 手持ち&調べたHTML5とCSS3の知識で,クローンアプリのUIを作成中.

進捗状況

f:id:hiro_kato:20190530230120j:plain f:id:hiro_kato:20190530230134j:plain

続きを読む

#100DaysOfCode day15 Ruby(5)

目次

  • 目次
  • 結論
  • 何を達成したい(作りたい)か?
  • 何ができないか?
  • 学んだこと
  • 何ができるようになったか?
  • 次に何をやるべきか?
  • 感想
  • 参考

結論

  • 継承,クラスメソッドの基礎を学んだ
続きを読む

#100DaysOfCode day14 Ruby(4)

目次

  • 目次
  • 結論
  • 何を達成したい(作りたい)か?
  • 何ができないか?
  • 学んだこと
  • 何ができるようになったか?
  • 次に何をやるべきか?
  • 感想
  • 参考

結論

続きを読む