백준
[SWEA 1974] 스도쿠 검증 (java)
케굴
2023. 7. 26. 10:18
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.*;
import java.util.*;
class Solution
{
static int T;
static int[][] arr = new int[9][9];
public static void main(String args[]) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
T = Integer.parseInt(br.readLine());
for (int t = 1; t <= T; t++) {
for (int i = 0; i < 9; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < 9; j++) {
arr[i][j] = Integer.parseInt(st.nextToken());
}
}
boolean isGood = true;
// 1. 가로 검증
for (int i = 0; i < 9; i++) {
int[] check = new int[10];
for (int j = 0; j < 9; j++) {
check[arr[i][j]] += 1;
}
for (int r = 1; r <= 9; r++) {
if (check[r] != 1) {
isGood = false;
break;
}
}
}
// 2. 세로 검증
for (int i = 0; i < 9; i++) {
int[] check = new int[10];
for (int j = 0; j < 9; j++) {
check[arr[j][i]] += 1;
}
for (int r = 1; r <= 9; r++) {
if (check[r] != 1) {
isGood = false;
break;
}
}
}
// 3. 칸 검증
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
// 9칸 돌기
int[] check = new int[10];
for (int k = 0; k < 3; k++) {
for (int l = 0; l < 3; l++) {
int a = i*3 + k;
int b = j*3 + l;
check[arr[i*3 + k][j*3 + l]] += 1;
}
}
for (int r = 1; r <= 9; r++) {
if (check[r] != 1) {
isGood = false;
break;
}
}
}
}
if (isGood) {
bw.write("#" + t + " " + 1 + "\n");
} else {
bw.write("#" + t + " " + 0 + "\n");
}
}
bw.flush();
bw.close();
br.close();
}
}