この記事は「NEXTSCAPE Advent Calendar 2022」の16日目です。 qiita.com
はじめに
開発者ロードマップを定期的に見直しています。
現在、私はこのロードマップ上でいうところのBackendにいるのですが、実際システム開発の現場にいると学習するべきことはこれより多く、 アルゴリズムそのものについて考える割合が少なくなってしまいがちです。
なので今回は競技プログラミングの過去問を使って学習していこうと思います。
私の主な目的は2つです。
アルゴリズムを考えること、理解を深めること
C#を使って実装する上でより良い方法を身につけること
以下、競技プログラミングの概要と、C#を使ってAtCoderの問題(過去問)を解く方法について説明します。
競技プログラミングってなに?
課題に対して早く与えられた要求を満足するプログラムを正確に記述することを競うもので、近年、エンジニアがスキルを磨くための方法として人気が高まっています。
国内ではAtCoder、国外ではTopcoderやCodeforceなどのサイトが有名です。
AtCoderってなに?
課題が日本語で提供されており、簡単なものから中級、上級まで、あらゆるスキルレベルに対応したさまざまな問題が用意されています。
メールアドレスさえあれば簡単にアカウントを作成でき、無料で利用することができます。
環境
- Windows 10 Home
- Visual Studio 2019
- .NET Core v3.1
Visual Studioで以下のnpmパッケージをインストールしていきます。
ac-library-csharp
AtCoderが提供する、C++用アルゴリズム・データ構造ライブラリ を、C#に移植したもの
SourceExpander
コンパイル時にソースコードを.csx形式の1ファイルに展開してくれるもの
やりかた
Visual Studioでコンソールアプリを作成して実行
生成されたcsxファイルをAtCoderに提出
基本的にはこれでokですが、よく使うアルゴリズムは必要に応じてライブラリを自作するのがよいかもしれません。
まずはチュートリアルや初心者向け問題集から始めるのがおすすめです。
おわりに
名前だけは知ってるけどやったことはないという方も一度触れてみてはいかがでしょうか。
逃げたら一つ、進めば二つ、なので、これからも進み続けたいと思います。