AOJ0183 Black-and-White
問題リンク Black-and-White
- 解法
3*3で揃っているものを探すだけなのでやりやすい方法をどうぞ。
今回は、bを1、wを-1として置き換えて、各行、各列、各斜めに対して総和をとり、絶対値が3になっているところがあるかどうかで判定しました。
- ソース
import java.util.Scanner; //Black-and-White public class AOJ0183 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true){ String s = sc.next(); if(s.equals("0"))break; char[][] m = new char[3][3]; m[0] = s.toCharArray(); for(int i=1;i<3;i++)m[i]=sc.next().toCharArray(); int[][] c = new int[4][5]; for(int i=0;i<3;i++){ for(int j=0;j<3;j++){ int x = m[i][j]=='b'?1:m[i][j]=='w'?-1:0; c[i+1][0]+=x; c[0][j+1]+=x; if(i==j)c[0][0]+=x; if(i==2-j)c[0][4]+=x; } } String ans = "NA"; for(int i=0;i<4;i++)if(Math.abs(c[i][0])==3)ans=c[i][0]==3?"b":"w"; for(int j=0;j<5;j++)if(Math.abs(c[0][j])==3)ans=c[0][j]==3?"b":"w"; System.out.println(ans); } } }