LoginSignup
4
5

More than 1 year has passed since last update.

競技プログラミングで初心者脱却付近で便利な小技(テクニック)

Last updated at Posted at 2023-03-27

おすすめする人

  • Atcoder基準で茶色、緑色くらい人
  • アルゴリズムを忘れやすい人
  • アルゴリズムはだいたい覚えたけど記述する時に手を止めやすい人
  • 標準入力を書き飽きた人
  • 早解きコンテストで上触れを引きたい人

そんな人はスニペット(snippet)を使おう

スニペットって何?

事前に記述したコードをいつでも再利用できる方法です。

もう少しちゃんとした説明

例えば...

標準入力あるある

よく見るであろう、次のように数値が与えられたとします。

N
a_1 a_2 a_3 ... a_N

この場合

N = int(input())
a = list(map(int,input().split()))

とわざわざ書くより

def num():
    return int(input())

def l():
    return list(map(int,input().split()))

をスニペットから呼び出し

N = num()
a = l()

と書いてかなりの時短が出来ちゃいます。

使うアルゴリズムの分野がだいたいわかった時

これはアルゴリズムの分野ごとに保存しておくと便利です。
例えばグラフ探索系とすると

def Bellman_Ford(s,n,w,es):
    #s→iの最短距離
    # s:始点, n:頂点数, w:辺の数, es[i]: [辺の始点,辺の終点,辺のコスト]

def dijkstra():
    #n:ノード数e:辺数,w:スタート


def warshall_floyd(n,d):

みたいに自分が保存した(使ったことがある)コードを見直し、どれを用いるべきか考えることもできます。
また忘れた際にも思い出す事が出来ちゃいます。

スニペットの作り方

これに関しては公式や詳しい人が書いているのが存在しているので大体は
(自分の用いているコーディングソフト) スニペット
のように検索すると出てくると思います。

まとめ

事前に準備する必要があるがスニペットによってコード記述速度はかなり速くなる

4
5
1

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
4
5