Problem:
三目並べ

3 × 3 の盤面の三目並べを考えましょう。三目並べは 2 人で行う対戦ゲームです。先攻後攻を決め、一人は黒石、一人は白石を打ちます。盤面に石を交互に一つずつ置いていき、縦横斜めのいずれかの方向に先に 3 つ自分の石を並べた人が勝ちとなります。

盤面の情報を入力とし、勝敗の判定を行い、黒が勝ちの場合は「b」、白が勝ちの場合は「w」、どちらもそろっていない場合は「NA」と出力するプログラムを作成してください。 盤面の情報は、3行3列の文字列で構成されます。「b」は黒石、「w」は白石、「+」(半角プラ
ス)は何も置かれていない状況を表します。ただし、同時に黒が3つ、白が3つ並ぶことはありませ
ん。

Input

複数のデータセットの並びが入力として与えられます。入力の終わりはゼロひとつの行で示されます。
各データセットは以下の形式で与えられます。

board1
board2
board3

i 行目に盤面の i 行目の情報を表す文字列 boardi が与えられます。

データセットの数は 50 を超えません。

Output

データセット毎に、「b」、「w」、「NA」のいずれかを１行に出力します。

Sample Input

bbw
wbw
+b+
bwb
wbw
wbw
0

Output for the Sample Input

b
NA

Solution in JAVA (judge verdict: Accepted)

import java.util.*;

class Main {
        public static void main(String args[]) {
                Scanner sc = new Scanner(System.in);
                while (true) {
                        String[] S = new String[3];
                        S[0] = sc.next();
                        if (S[0].equals("0")) {
                                break;
                        }
                        S[1] = sc.next();
                        S[2] = sc.next();
                        boolean f = true;
                        for (int i = 0; i < 3; i++) {
                                if (S[i].charAt(0) == S[i].charAt(1) && S[i].charAt(1) == S[i].charAt(2) && S[i].charAt(0) != '+') {
                                        System.out.println(S[i].charAt(0));
                                        f=false;
                                        break;
                                }
                                if (S[0].charAt(i) == S[1].charAt(i) && S[1].charAt(i) == S[2].charAt(i) && S[0].charAt(i) != '+') {
                                        System.out.println(S[0].charAt(i));
                                        f=false;
                                        break;
                                }
                        }
                        if (f && S[0].charAt(0) == S[1].charAt(1) && S[1].charAt(1) == S[2].charAt(2) && S[0].charAt(0) != '+') {
                                System.out.println(S[0].charAt(0));
                                f=false;
                        }
                        if (f && S[0].charAt(2) == S[1].charAt(1) && S[1].charAt(1) == S[2].charAt(0) && S[0].charAt(2) != '+') {
                                System.out.println(S[0].charAt(2));
                                f=false;
                        }
                        if (f) {
                                System.out.println("NA");
                        }
                }
        }
}