SRM500は…
遅くなりましたが報告します。
今回は一問目、102点のコードが書けたのですが・・・
チャレンジフェイズですよ。。。
試してみようと気軽な気持ちでやってみて、失敗して・・・
得点が-25点にorz
やめてwww
問題はこんな感じですた。
適当にカードに数字を書いていって山札をつくって、そのカード一枚をとってその数字を控え、そのカードと書かれていた数字から1を引いた数と足した数をかいたものがほかのカードにあったらそれもふくめて山札からのぞくことをしたとき、与えられた山札は最短で何回で山をなくせるか
言葉がごちゃごちゃしてますがこんな感じ。
最初配列の要素って削除できないのかな?とか思いながらコード考えてたんだけど…
結局使い方分からんArrayList無理やり使おうとしてできなくて、
つまり力技でやったらタイムオーバーのコードorz
で、その部屋で一番早かった人のコードみたんですね。
めっちゃエレガントで感動しました。
mport java.util.*; public class SRMCards { public int maxTurns(int[] cards) { Arrays.sort(cards); int res = 0; for (int i = 0; i < cards.length; i++) { if (i + 1 < cards.length && cards[i+1] == cards[i] + 1) i++; res++; } return res; } }
まじなるほどって感じでした。
まぁどっちにしろソートのこと知らなかったからわかるはずもないんだけど(;´Д`)
とりあえず収穫は
そんなことも知らずに挑戦してたのか!とかいうのはやめてくださいね。
Java勉強中なんですから(笑)
ちなみに500は英語の前に屈しました。
というわけで次回でのさらなる自分の成長を期待しますww