-
[SWEA] 1974. 스도쿠 검증PS/Java 2021. 3. 10.
칸이 채워진 스도쿠에서 해당 스도쿠가 정답인지 아닌지 판별한다.
import java.util.Scanner; public class swea스도쿠 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int T = scanner.nextInt(); for(int tc = 1; tc <= T; tc++) { int[][] arr = new int[9][9]; boolean isOK = false; for(int i = 0; i < 9; i++) { // 가로 검사 int sum = 0; for(int j = 0; j < 9; j++) { arr[i][j] = scanner.nextInt(); sum += arr[i][j]; } if(sum != 45) { isOK = true; } } if(isOK) { System.out.println("#" + tc + " 0"); continue; } for(int i = 0; i < 9; i++) { // 세로 검사 int sum = 0; for(int j = 0; j < 9; j++) { sum += arr[j][i]; } if(sum != 45) { isOK = true; break; } } if(isOK) { System.out.println("#" + tc + " 0"); continue; } for(int l = 0; l < 3; l++) { // 네모칸 검사 for (int k = 0; k < 3; k++) { int sum = 0; for (int i = 3 * l; i < 3 * (l + 1); i++) { for (int j = 3 * k; j < 3 * (k + 1); j++) { sum += arr[i][j]; } } if (sum != 45) { isOK = true; break; } } } if(isOK) { System.out.println("#" + tc + " 0"); continue; } System.out.println("#" + tc + " 1"); } } }
스도쿠는 각 칸의 가로줄, 세로줄, 네모칸이 1부터 9까지 하나씩 있어야 합니다. 1~9까지의 합은 45이므로 해당 검사 구간끼리 더해서 비교를 해보면 됩니다.
'PS > Java' 카테고리의 다른 글
[SWEA] 2805. 농작물 수확하기 (0) 2021.03.10 [SWEA] 1218. [S/W 문제해결 기본] 4일차 - 괄호 짝짓기 (0) 2021.03.10 [SWEA] 1873. 상호의 배틀필드 (0) 2021.03.09 [SWEA] 5431. 민석이의 과제 체크하기 (0) 2021.03.09 [SWEA] 1210. [S/W 문제해결 기본] 2일차 - Ladder1 (0) 2021.03.09