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; } }
追記