ls -al

仮想通貨やプログラミングに関する事などをつらつらと書き綴ります

KotlinとAtCoderに挑戦してみる

せっかくkotlinを学んだので、これを使う場を用意しないと技術が定着しなくて勿体無い、かといってプログラミングを必要とするアイデアが都合よく湧くとも限らない。ということでkotlinでAtCoderを始めてみました。

開発環境

AtCoderには「コードテスト」機能があり、動作を確認できます。しかし、当然サーバーでコンパイル及び実行してもらう形になるので遅いです。また、IDEのような高度な補完などはできません。そういった背景から、僕はIntelliJ Community Editionを使用しています。競プロしながら、ついでにIDEの扱いもさらに身に着けておこうという狙いもあります。

所感

以前に競技プログラミングを少し触った時はC++を使用していましたが、やはり最近の言語はとても扱いやすいです。数行で所望の機能が実装できてしまいました。当然ネイティブではないのでそこまでの速度は出ませんが、これは楽しそうです。

ハマった所

上二つのコードはほぼ同じに見えますが、片方はACで片方はWAです。なにが違うのでしょうか。12行目に注目してください。ACの方はprintln()で、WAの方はprint()を使用しています。AtCoderの解答のフォーマットとして、出力の末尾は改行で終わっていないといけません。ここでそれらメソッドの仕様を確認すると、println()は文字列の後ろに改行コードを挿入し、print()はしません。参考に上げた記事が分かりやすいです。AtCoderを行う時は、きちんと改行を行ってくれるprintln()を使うようにしましょう。僕はこの仕様に気づかずに数十分を無駄にしました。

参考

Kotlin Print And Println