C# で動的計画法(DP)を解きたい 最近競技プログラミングをやりだして、動的計画法(DP)というアルゴリズムを知りました。練習でいろいろな問題を解いていこうと思います。そして勉強がてら解けた問題の内容を書いていきます。 Typical DP Contest – Typical DP Contest | AtCoder DPの問題に特化した過去のコンテストがあるのでこれを順に C# で […]
ブラウザが吐く CORS エラーを無視したい APIを利用するWEBシステムなんかを開発しているときに割と遭遇しがちなのがCORSのエラーです。異なるドメイン間でのリソース共有に関するアクセス制限のエラーです。 No ‘Access-Control-Allow-Origin’ header is present on the requested resource. オリジン […]
Visual Studio のスニペットを自作する方法 Visual Studio の C# のスニペットを自作してみます。 VSCode のスニペットは以下の記事に書きましたが、今回は Visual Studio です。 VSCode でスニペットを自作する方法 │ Web備忘録 VScode に比べて Visual Studio のスニペット自作は少し面倒です。 XMLのひな形を作成する VS […]
VSCode でスニペットを自作する方法 スニペットはよく使うコードのひとまとまりを短いキーワードに対応させて素早く入力するための機能です。言語の拡張機能を入れるとデフォルトでいくつかのスニペットが提供されているはずです。 例えば C++ で for文を書きたいとき for と入れてタブを二回押すと次のように for文の構文が一瞬で入力され、適宜変更を行う変数名や型だけを変更することができます。 […]
Visual Studio Code を日本語化する方法 VSCode はデフォルトで英語設定なので、日本語設定にしたい人は自分で設定する必要があります。その方法をメモしておきます。 言語設定の変更 まずはコマンドパレットを開きます。メニューバーの View -> Command Pallet... を選択(あるいは Ctrl+Shift+P 押下)します。 コマンドパレットに “ […]
Windows Subsystem for Linux とは Windows Subsystem for Linux – Wikipedia Windows Subsystem for Linux (WSL) は Windows10 から Linux を利用するための仕組みです。Windows 10 より前のOSでは使えません。 VM 等で動かすのではなく Windows 上から直接 […]
文字列を数値に変換するときに空文字はゼロで変換する方法 Python で文字列を数値型(int, float)に変換するには以下のようにします。 i = int("123") f = int("123.4") この時変換対象の文字列が空文字(もしくは None)の時でも安全に変換できるようにする方法があります。 i = int("" or […]
連結リストを自前で実装する 連結リストとは 連結リスト – Wikipedia 連結リスト (Linked List) とは基本的なデータ構造の1つです。配列のようなインデックスで順序が決まるのではなく、各オブジェクトが持つポインタによって順序を決めるデータ構造です。 連結リストにはいくつかの種類があります。一方向と双方向、循環と非循環などです。今回実装していくのは 双方向連結リスト […]
Stack, Queue を自前で実装する C# の場合、データ構造の Stack と Queue は標準ライブラリで提供されますが、自前で実装して理解を深めようと思います。 順番に見ていきます。 Stack (スタック) スタック – Wikipedia Stack は先入れ後出し(FILO)を実現するためのデータ構造です。 Stack は、データを入れる Push と積まれたデータ […]
挿入ソート 挿入ソートを C#, VB.NET で実装してみます。 挿入ソートは、時間計算量 O(n^2) でバブルソートや選択ソートと同じく高速なソートアルゴリズムとは言えません。ただし、挿入ソートについて言えばある面で有用なソートアルゴリズムです。 挿入ソートは要素数の少ないデータに対して、効率よくソートするアルゴリズムです。 クイックソートなど高速なソートアルゴリズムについては、処理のオーバ […]