👻

アルゴリズムの勉強をしたい(今更)

2023/12/04に公開

アルゴリズムの勉強をしたいと前々から思っていて、ようやく始めようと決意したので雑記

きっかけ

  • 【大学院時代】 Pythonの勉強したいなぁ…何かいいツールあるかなぁ…
    -> AtCoder
    -> 少しやって力尽きる(そもそもPythonをあまり理解してなかった)
  • 【最近】 久しぶりに会った医師の友人が実はプログラミング出来ることを知る(AtCorder水色, 応用情報技術)
    -> 危機感

目的

アルゴリズム力強化。仕事でもアルゴリズム系のことが出来たら便利そう。今やっているものと合わせて
(ソフト開発) + (薬学知識) + (語学力) + (アルゴリズム)
が揃ったら転職とか有利そう(安直)

現状

  • Python: まあまあ書ける。文法は分かるし仕事でも使ってる
  • アルゴリズム力: 皆無。for文で全探索することしか知らないのでAtCoderでいうところのB問までは解ける

目標

  • AtCoder入緑

方法

あくまで仕事で使えることになるのが目的なので、アルゴリズムの全体的な理解を目指す。
まずはアルゴリズムのロジックの理解とそれらを実現するために実装方法を勉強する。
言語はC++よりは、仕事で使う確率の高いPython(PyPy)。
以下のアルゴリズムについて勉強し、自分なりにまとめて記事に出す。

  • bit全探索
  • 二分探索
  • BFS
  • DFS
  • DP
  • ダイクストラ
  • Union-Find

その後、コンテストに参加しながら過去問を埋める。

Discussion