ようやくpaizaに解答するための権利を手に入れました!
えと、登録できてなかったとかではなく、
標準入力がよくわかんなくて採点してもらえなかったのです。
思わずはまってしまって、結構遊んでしまいました。
わたしだとBランクの問題ができたりできなかったりです。
Tree構造と再起がわからないので完全にそのせいですね。
paizaの問題は基本的にアルゴリズムの問題です。
なのでJavaの練習にはなりません
ランクDに関しては、文法知ってれば大抵だいじょうぶ。
それでCなのですが、一般化というやつが必要です。
a[0],a[1],a[2]…となってたらa[i]と表せるってやつです。
この辺を教えてくれるのは見たことないです。
たまに才能で片付けられてるときも。
一般化をどう教えるかについて、いろいろ悩んでたので
思わずハマったというわけですが、それはまた別の機会に。
以下、備忘録です。
言い忘れました Netbeansでコード作成する人向けです。
Netbeansで標準入力するとCtrl+Dで修了できません。(見つからなかった)
そのための対処含めてになります。
標準入力について
いわゆるStreamで受け取れます。
テキストファイルに例を貼って、ファイルを読み込めば
おんなじ状況でテストできます。
ついでにコレクションに突っ込みます。
Scanner sc = new Scanner(new File("C:\\test.txt")); List<String> ls = new ArrayList<>(); try { while (sc.hasNextLine()) { String line = sc.nextLine(); ls.add(line); } } finally { sc.close(); }
よく使う処理
知らないと参加できないケースが多いのでまとめ。
特定文字列で分割
半角スペース区切りが多いです。
返り値は配列になります。
Str.split(“ ”);
文字型<>数値型の変換
言語によってはいらないのかも?
文字>数字
Integer.parseInt(str);
数字>文字
String.valueOf(int)
文字のn番目の文字
i番目の文字を一文字だけ抜き出したいとき。
str.substring(i,i+1)
最後の一文字削除
これはやり方というより、最後に余分なスペースがあると
正解にならないことに注意です。
str.substring(0,str.length()-1);