KotlinでAtCoder
最近AtCoderJobsのサービスが開始されたこともあり、AtCoderに挑戦し始めている。
経験や書きやすさを考えるとCもしくはC++で解くのがやりやすそうだが、せっかくなのでKotlinで挑戦している。
過去問を含め問題を解いていると毎回同じところで引っかかり、調べることに毎回時間を取られてしまうので記録しておく。
引っかかる事があれば都度追加予定。
標準入出力
入力
val s = realLine()
String
で入力される。
出力
println(s)
入力の分割
次のように1行で複数の値が入力される場合にListに変換した方が扱いやすい。
A B C
そのまま分割
val s = readLine().split(" ")
ついでにInt
に変換
val s = readLine().split(" ").map { it.toInt() }
for文
値指定
Cの
for(int i=0; i<=10; i++) { printf("%d", i); }
に相当する書き方が
for(i in 0..10) { println(i) } ### イテレーター Javaの拡張for文的な書き方
for(i in arr) { println(i) }
三項演算子
Kotlinでは
val s = 10 % 2 == 0 ? "Even" : "Odd"
の書き方はできない。 次のように書く。
val s = if(10%2 == 0) { "Even" } else { "Odd" }
少し長くなってしまう。
AtCoderで利用できないこと
AtCoderのkotlinのバージョンは1.0のため、1.1以降に追加された書き方は利用できない。
新しい方法で楽したくなるのが常なので念のために記録する。
rem
1.1で追加。
mod
がdeprecatedのため普段はrem
を使う。
今考えると普通に%
使えば良かったのでは。
ArrayList
1.1で追加
入力をいじくって追加削除する際にmutableな必要がある。
mutableListOf()
でadd
すればほぼ同じ。