おサラミログ

パズルの話とか、メモとか

競技プログラミング入力メモ(Java)

友達の影響で競技プログラミングにちょっとばかりハマっている
Javaで挑むに当たり入力でよく戸惑うのでメモ(随時更新)

入力

原則nextを用いて、パースする。
nextIntとかよりnextからのパースのほうが早い。

Int

Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.next());

char[](文字列を1文字ずつ分割)

Scanner sc = new Scanner(System.in);
char[] c = sc.next().toCharArray();

Scannerは実行速度が遅いらしいが、
今のレベルでscannerがボトルネックになるような問題には出くわしていない。
自作で入力用ライブラリを作成するのが一番早いが、
そこまでガチ勢じゃないのでそういう問題に出くわしたら、またちゃんと勉強する。

参考:
入出力 - てきとーな日記
↑の記事を少し噛み砕いた記事
Javaで競技プログラミングをするときの罠とテク - Qiita

なお、Scannerをよくcloseし忘れるので、入力の最後にちゃんとcloseする

sc.close(); 

ぼやき

競技プログラミングの問題がうまく解けないとき、
アルゴリズムの問題だったら納得できるんだけど、
こういう初歩的な技術要素による問題だともったいない気がする。
そういうのを少なくしていきたい。