Hatena::Grouptopcoder

(*/∇\*)  黒歴史恥ずかしい (*/∇\*)

Linux/C++組込みエンジニアですが、コンテストではJava使っています。
Profile: とぷこだ こどふぉ ページビュー:15513

2011-06-12

SRM509 div2 23:10 SRM509 div2 - (*/∇\*)   黒歴史恥ずかしい (*/∇\*)  を含むブックマーク はてなブックマーク - SRM509 div2 - (*/∇\*)   黒歴史恥ずかしい (*/∇\*)

すごく落ち込んだけども、ちゃんと、反省と対策をしなきゃいけない。

にゃー

divLevelProblemNameStatus
2250PalindromizationDiv2  Passed System Test
2500LuckyRemainder Opened
21000NumberLabyrinthDiv2 -

1問目

X(0~100000の整数)が与えられたとき最も近い回文を求める問題。

僕が本業C++なのにコンテストではJavaを使っている理由は、

API知識を一番持っているのがJavaだからである。

BigInteger万歳!!とか考え、その優位性を活かして

JavaAPIの無駄使いをしよう!と考えていた矢先だった。

こういう機会じゃなきゃ使わなそうなライブラリ

StringBuffer/StringBuilderのreverseメソッド使えば回文判定楽勝じゃん!

時間はなんとかなるだろうと考え、実装。

private boolean kaibun(int X) {
    StringBuilder sb = new StringBuilder(X + "");
    return sb.reverse().equals(sb);
}

あれ、、うまくいかない、

としばらく悩み、Stringは不変オブジェクトだけども、

StringBuffer系は可変オブジェクトだったことに気付く、

メソッドコール時点でsbの値が変わっていることに気付き、

private boolean kaibun(int X) {
    StringBuilder sb = new StringBuilder(X + "");
    return sb.reverse().equals(new StringBuilder(X + ""));
}

とやるが、それでもうまくいかない。

諦めて、普通に文字列から文字一個ずつ取り出して、

比較することにした。

後日気付いたけども、StringBuffer/StringBuilderの

equalsメソッドは文字列一緒でもOKにはならない場合があるのね。

つまり、もしreverseメソッドで回文判定するんだとしたら

private boolean kaibun(int X) {
    StringBuilder sb = new StringBuilder(X + "");
    return sb.reverse().toString().equals(X + "");
}

こうしないといけない。

やられた><

まぁよくよく考えれば可変長文字列はcapacityとか変数持ってるしね。

反省点

練習時は使ったことないAPI使うのアリだと思うけど、

本番時は控えよう。

というよりも、もっとたくさんコードを書いて、

ノウハウを増やそう。

2問目

ある数を分解したdigitの組み合わせの合計数を9で割ったときの余りを求めよ

という問題。

組み合わせで死亡。。

でも他の人のコードみたら、別に分解しなくても結局同じ数になったのかな。。

KrisalynKrisalyn2013/02/18 17:15I am toatlly wowed and prepared to take the next step now.

aoocgacaoocgac2013/02/19 02:06Zlynkz <a href="http://stapeihhwiwp.com/">stapeihhwiwp</a>

rtkahqqrnrtkahqqrn2013/02/21 14:11MaY8po <a href="http://aifcpbiitqcz.com/">aifcpbiitqcz</a>

jzxaowmmnjzxaowmmn2013/02/21 14:11lpYdR5 <a href="http://zloukuzedhjy.com/">zloukuzedhjy</a>

qbninervvgcqbninervvgc2013/02/21 14:11vICORa <a href="http://ontrpypuglxq.com/">ontrpypuglxq</a>

jzxaowmmnjzxaowmmn2013/02/21 14:11lpYdR5 <a href="http://zloukuzedhjy.com/">zloukuzedhjy</a>

qbninervvgcqbninervvgc2013/02/21 14:11vICORa <a href="http://ontrpypuglxq.com/">ontrpypuglxq</a>