NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

Ready,Set,C#!システムエンジニア2年目の日記

この記事は「NEXTSCAPE Advent Calendar 2022」の16日目です。 qiita.com

はじめに

開発者ロードマップを定期的に見直しています。

Developer Roadmaps

現在、私はこのロードマップ上でいうところの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

  • SourceExpander

やりかた

  1. Visual Studioでコンソールアプリを作成して実行

  2. 生成されたcsxファイルをAtCoderに提出

基本的にはこれでokですが、よく使うアルゴリズムは必要に応じてライブラリを自作するのがよいかもしれません。

まずはチュートリアルや初心者向け問題集から始めるのがおすすめです。

おわりに

名前だけは知ってるけどやったことはないという方も一度触れてみてはいかがでしょうか。

逃げたら一つ、進めば二つ、なので、これからも進み続けたいと思います。