プログラミング
記事内に商品プロモーションを含む場合があります

AtCoderで役立つ記事一覧(Python, Go言語)

アイキャッチ画像
tadanori

主にAtCoderに関連したPython, Go言語の記事の一覧です。初心者向けのチートシートなどもありますので参考にしてください(言語に関連する記事も「基本」に入れています)

※のある項目は、通常のコンテストでは使わないものです。

一般

考え方

AtCoderの問題に詰まったら眺める記事|解法が思いつくかも

プログラミングする時に間違いやすい、植木算に注意しよう

Python

基本

PythonでAtCoderを始めるためのチートシート(入力編)|Pythonで競プロ初心者向け

AtCoder向けpythonチートシート(その2)|Pythonで競プロを始める人向け

Pythonで文字列を分割・結合する方法(split, split, join)【Python入門】

Pythonのfor文の書き方を解説(range, enumerate, zip)|Python入門

Pythonで色々な順番でソートする方法(sort, sorted)

簡潔にリストを生成できる!Pythonの内包表現について解説

Pythonでの可変長引数を受取る方法(*argsと**kwargsの使い方)

キュー・再帰・その他注意点

AtCoderの問題をPythonで解いてハマったこと(キュー処理、再帰処理等)

Pythonの”if A in B”の演算量(処理量)に注意しよう|リストと集合の処理速度の違いについて

色々なアルゴリズムの実装(データ構造など)

UnionFind

PythonでUnionFind(DSU)を実装

BIT(Fenwick Tree)

Binary Indexed Tree(Fenwick Tree)を実装する|Python

行列累乗

Pythonで行列の累乗を実装する

グラフ(DFS,BSF、ダイクストラ法)

Pythonで深さ優先探索(DFS),幅優先探索(BFS), 優先キューを使ったダイクストラ法を実装

部分文字列の一致を調べる(文字列の更新付き)

【Python】ローリングハッシュをセグメント木に載せる|部分文字列の一致を高速にチェック

始点と終点の双方から幅優先探索を行う(演算量削減)

両端から幅優先探索(BSF)って演算量を削減する|高速化の手法

LIS(最長増加部分列)と再構成

Python|最長増加部分列の長さと、部分列の1つを再構成する方法

色々なアルゴリズムの実装(テクニック)

MOD付き組み合わせ数 nCk

PythonでMOD付きの組み合わせ(nCk)を求める

図形(線分と点の最短距離)

Pythonで点と線分との最短距離を求めるコードを書く

拡張ユークリッドの互除法の応用例

拡張ユークリッドの互除法の応用例を解説【Python/Go】

式変形して解く

X^0 + X^1 + X^2 + … + X^n(Σx^k)を解く

数列の隣接の差(or 差の絶対値)の和、区間最大和

数列の隣接の差(or 差の絶対値)の和、区間最大和を高速に求める

鳩の巣原理

鳩の巣原理を使ってプログラミングの問題を解く

区間差の最大和

モンテカルロ法

3000万の資産で何年暮らせるかを、モンテカルロ法で求めてみる【Python】

ビットカウント

2進数で1が立っているビットを高速にカウントする方法

数列

数列問題|足して100以上のパターン数を高速に数える方法(AtCoder向け)

その他

min-max法を用いた対戦プログラム

3目並べ(tic-toc-toe)のプログラムをPythonで書く|Python学習

Go言語

基本

Go言語入門|プログラミングに必須な知識を一気に解説

Go言語でAtCoderに参加する場合の注意点|テンプレートも公開

Go言語|整数・文字列・構造体のソートの書き方(sortパッケージの使い方)

Go言語のジェネリクス(Generics)の基本的な使い方|Queue, Setを実装してみた

Go言語のチャネルのまとめ|ゴルーチン間でデータのやり取りをする方法

Go言語のfor~rangeの注意点(ポインタ参照について)

ゴルーチン(goroutine)とチャネルを使った並行処理の記述方法いろいろ|Go言語

キューなどの実装方法

Go言語でAtCoder|Stack, Queue, Priority Queueの書き方

MOD付き演算

Go言語でmod計算をするライブラリ for AtCoder

64bitを超える整数を扱う

Go言語で64bitを超えるの多倍長整数を使う方法【big.Int】

色々なアルゴリズムの実装

最大公約数(GCD)

Go言語で最大公約数を求める(ユークリッドの互除法)

UnionFind

Go言語でUnionFind(DSU)を実装

順列列挙と組み合わせ列挙

Go言語で順列列挙(NextPermutation)、組み合わせ列挙(Combinations)を実装

図形(線分の交差判定)

Go言語で2つの線分の交差判定

自作ジェネレータでfor~rangeによる繰り返しを実現

https://tech.aru-zakki.com/golang-for-generator/

Go言語でC++のlower_bound, upper_boundを実装する

https://tech.aru-zakki.com/lowerbound-upperbound-for-golang/

ヒューリスティックコンテスト関連

Go言語で乱数のシードを設定する方法|rand.Seedは非推奨

その他

min-max法を用いた対戦プログラム

3目並べ(tic-toc-toe)のプログラムをGo言語で書く|Go言語学習

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

記事URLをコピーしました