LoginSignup
3
3

More than 3 years have passed since last update.

競プロで使うための GO 入門 ~はじめに~

Last updated at Posted at 2020-07-17

Index

この記事を書いた理由

競技プログラミングを始めるにあたって、自分のGO学習ノートとして、また競プロのチートシートとして使用するために書く。

方針

競プロのチートシートとして使うことを前提としているため、以下の方針で作成する。

  • 記法の説明のみに注力し、プログラミングの説明は行わない。
  • できる限りシンプルな例を記載する。
  • 特に使用頻度の高い機能に絞り、情報量を絞る。

競プロでGoを選択した理由

本格的にアルゴリズムを学ぶのであればC/C++がベストな選択だが、競プロはコーディングに掛かった時間が評価されるため、少ないコード量で書ける言語を候補とした。
候補は、Go、Python、Ruby、Javaなど人気ランキング上位のものとしたが、以下の理由でGoとした。

  • 速度とメモリ消費量
    C++と同等の速度、Pythonより10倍、Javaより80倍速い。
    競プロでは、実行速度とメモリ消費量も評価されるため、高速で低メモリ消費量のGoを選択
    ※ あくまで競技プログラミングでの平均であり、書き方、用途により異なる。

  • 個人的理由
    プロダクトの作成ではC/C++を使っているが、ツールなどを作るときは時間がかかり過ぎるため、少ないコード量で書ける言語を覚えたかった。
    また、単一の言語に拘るとエンジニアとしての幅を狭めるため、複数の言語をそれなりのレベルで使えることを目標としている。
    そして、Goは今後の仕事の受注として将来性がありそうと感じた。

環境

環境構築の手間を省くため、Paiza.IOを利用する。
WEB上でビルド実行でき、標準入出力が簡単に行える。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3