各言語で競プロに入門する時の資料
アプリやバックエンドを普段書いていて、競プロに入門する方が好きな言語で始めやすいよう、2021/10/7現在の情報で雑にまとめている
AtCoderでの各言語の対応状況
各言語での標準入出力
精選過去問10問リンク
結論
初心者にはRubyがとても分かりやすくて良い気がしている(特に標準入出力まわりがシンプル)
Swift
Xcodeで競プロする(C++)のも中々良かった記憶なので、Swiftでそれをやっても良さそう
精選過去問10問
AtCoder に登録したら解くべき精選過去問 10 問を Swift 5 で解いてみた - Qiita
code:標準入出力.swift
// 標準入力
func getString() -> String { readLine()! }
func getInt() -> Int { Int(getString())! }
func getDouble() -> Double { Double(getString())! }
// 標準出力
print("answer")
Kotlin
Kotlinは公式ドキュメントに競プロの案内を書いている(!)
基本的にはここを読んだらだいぶ分かりそう
Kotlinは確かに(if式やラムダ式で)ロジックを綺麗に書きやすいし、競プロ向きな言語かもしれない
精選過去問10問
Kotlinで『AtCoderに登録したら解くべき精選過去問10問』を解いてみた - Qiita
code:標準入出力.kt
// 標準入力
private fun readLn() = readLine()!! // string line
private fun readInt() = readLn().toInt() // single int
private fun readStrings() = readLn().split(" ") // list of strings
private fun readInts() = readStrings().map { it.toInt() } // list of ints
// 標準出力
println("answer")
Ruby
精選過去問10問
AtCoder に登録したら解くべき精選過去問 10 問を Ruby で解いてみた - Qiita
Rubyの標準入出力
code:標準入出力.rb
# 標準入力
a_str = gets.to_s
a_str, b_str, c_str = gets.split.map(&:to_i)
arr = gets.split(' ').map(&:to_i) # => 2019, 10, 29みたいに1つの配列として受け取りたい場合
# 標準出力
puts "answer"
Python
精選過去問10問
AtCoderに登録したら解くべき精選過去問10問をPythonで解いてみた - Qiita
code:標準入出力.py
Go
精選過去問10問
AtCoder 過去問精選 10 問 をGoでやってみた - Qiita
fmt.Scan() や fmt.Printf() はアンバッファードな入出力なので、$ 3 \times 10^{5} 個くらいの数値を入出力したりすると TLE します。
Goで競技プログラミングするときのテクニック - Qiita
Dart
精選過去問10問
AtCoder に登録したら解くべき精選過去問 10 問をDartで解いてみた - Qiita
標準入出力については↓がとても参考になったnixii.icon
AtCoderでDartが使えるようになってたのでオレオレコードスニペットまとめ
-.icon
昨年の情報だが、提出の多い言語でいうと圧倒的にC++がやはり多いらしい
次いでPython
その後はJava, C, Rubyと続く
c.f.「AtCoderで提出数が多い言語」ランキング - Qiita
社内の勉強会でAtCoder.iconをペアプロでワイワイ解く会をやろうとしているnixii.icon
社内ではアプリ(iOS, Android)やバックエンドで使ってる言語も色々あるので、これを機に整理してみた
JavaとかC++とかRustとか、もしニーズがありそうだったら追記する