#8 ビンゴカード
難易度
paizaランクB相当
3 × 3のビンゴのカードのビンゴが何ラインビンゴしているかを確認するプログラムをあなたは作成していますが思ったような結果になりません。修正して正しい回答を作成してください。
条件
b_1
b_2
b_3
・1 行目 〜 3 行目に b_1, b_2, b_3 がそれぞれ "#" もしくは "." 3 文字の文字列で与えられます。
・この時 "#" はビンゴカードの穴を示し、"." はまだ開いていないマスを表します。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
char[][] bingo = new char[3][3];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
String input = scanner.nextLine();
for (int j = 0; j < 3; j++) {
bingo[i][j] = input.charAt(j);
}
}
int bingoLine = 0;
// 横ビンゴ
bingoLine += (bingo[0][0] == bingo[0][1] && bingo[0][1] == bingo[0][2]) ? 1 : 0;
bingoLine += (bingo[1][0] == bingo[1][1] && bingo[1][1] == bingo[1][2]) ? 1 : 0;
bingoLine += (bingo[2][0] == bingo[2][1] && bingo[2][1] == bingo[2][2]) ? 1 : 0;
// 縦ビンゴ
bingoLine += (bingo[0][0] == bingo[1][0] && bingo[1][0] == bingo[2][0]) ? 1 : 0;
bingoLine += (bingo[0][1] == bingo[1][1] && bingo[1][1] == bingo[2][1]) ? 1 : 0;
bingoLine += (bingo[0][2] == bingo[1][2] && bingo[1][2] == bingo[2][2]) ? 1 : 0;
// 斜めビンゴ
bingoLine += (bingo[0][0] == bingo[1][1] && bingo[1][1] == bingo[2][2]) ? 1 : 0;
bingoLine += (bingo[0][2] == bingo[1][1] && bingo[1][1] == bingo[2][0]) ? 1 : 0;
System.out.println(bingoLine);
}
}
tak4さんの書いたコード
interface Main{static void main(String[]a)throws Exception{int b=1,x=0;for(;b<2048;b+=System.in.read()<36?1:0)b*=2;for(int e:new int[]{7,112,1792,273,546,1092,1057,292})if((e&b)==e)++x;System.out.print(x);}}