Topcoderデビュー
NumberMagicEasyという問題に挑戦。
言語はJavaでやってみました。
Eclipse + JUnitでデバッグしながら何とか完成。
我ながら酷いコードだと思います
public class NumberMagicEasy {
private final static int[][] cards = { { 1, 2, 3, 4, 5, 6, 7, 8 },
{ 1, 2, 3, 4, 9, 10, 11, 12 },
{ 1, 2, 5, 6, 9, 10, 13, 14 },
{ 1, 3, 5, 7, 9, 11, 13, 15 } };
private int[] hit = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
private int[] no = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
public int theNumber(String answer) {
int n = 0;
while (n < answer.length()) {
if (answer.startsWith("Y", n)) {
for (int i = 0; i < 8; ++i) {
hit[cards[n][i] - 1]++;
}
} else if (answer.startsWith("N", n)) {
for (int i = 0; i < 8; ++i) {
no[cards[n][i] - 1]++;
}
}
n++;
}
for (int i = 0; i < hit.length; ++i) {
if (hit[i] > 0 && no[i] == 0) {
return i + 1;
}
}
return 16;
}
}
追記
NumberMagicEasyリベンジ編へ続く