SW Expert Academy- 스도쿠 검증
문제 링크
문제 입력
더보기
10
7 3 6 4 2 9 5 8 1
5 8 9 1 6 7 3 2 4
2 1 4 5 8 3 6 9 7
8 4 7 9 3 6 1 5 2
1 5 3 8 4 2 9 7 6
9 6 2 7 5 1 8 4 3
4 2 1 3 9 8 7 6 5
3 9 5 6 7 4 2 1 8
6 7 8 2 1 5 4 3 9
7 3 6 4 8 9 2 5 1
8 5 2 7 3 1 6 9 4
9 1 4 5 6 2 7 3 8
4 9 7 2 5 6 8 1 3
5 6 3 1 8 7 9 4 2
2 8 1 9 4 3 5 6 7
6 7 5 3 2 4 1 8 9
1 4 9 6 7 8 3 2 5
3 2 8 1 9 5 4 7 6
2 4 6 7 5 3 1 9 8
7 5 8 1 9 4 2 3 6
3 9 1 2 6 8 7 5 4
5 8 2 3 4 6 9 7 1
1 6 3 9 7 2 4 8 5
9 7 4 8 1 5 6 2 3
4 2 7 5 8 1 3 6 9
6 3 5 4 2 9 8 1 7
8 1 9 6 3 7 5 4 2
8 4 5 2 9 6 1 3 7
1 3 6 7 5 8 4 9 2
9 7 2 1 3 4 6 5 8
2 9 7 4 6 3 8 5 1
4 6 1 5 8 2 9 7 3
5 8 3 9 7 1 2 4 6
3 2 8 6 4 5 7 1 9
7 1 4 3 2 9 6 8 5
6 5 9 8 1 7 3 2 4
4 5 7 1 6 3 8 2 9
6 3 9 8 2 7 5 4 1
7 9 3 4 8 5 1 6 2
1 8 2 5 4 9 6 3 7
8 6 1 7 9 2 3 5 4
5 2 4 6 3 1 7 9 8
3 7 6 9 1 4 2 8 5
2 4 5 3 7 8 9 1 6
9 1 8 2 5 6 4 7 3
1 5 2 3 8 6 9 4 7
4 8 3 2 7 9 1 5 6
7 6 9 1 5 4 8 2 3
2 1 8 6 4 7 5 3 9
6 9 7 5 3 8 2 1 4
5 3 4 9 1 2 6 7 8
9 7 1 4 6 5 3 8 2
8 2 5 7 9 3 4 6 1
3 4 6 8 2 1 7 9 5
1 5 8 6 7 2 3 4 9
7 2 9 3 4 8 5 1 6
6 3 4 5 1 9 7 2 8
8 9 2 1 2 5 6 7 4
3 7 6 8 9 4 2 5 1
5 4 1 7 3 6 8 9 3
2 8 7 9 6 1 4 3 5
4 1 5 2 8 3 9 6 7
9 6 3 4 5 7 1 8 2
1 2 4 9 3 6 7 8 5
7 8 6 2 4 5 3 9 1
3 9 5 1 7 8 2 4 6
5 1 9 4 6 2 8 7 3
4 6 7 8 9 3 5 1 2
8 3 2 5 1 7 9 6 4
9 7 3 6 5 4 1 2 8
6 5 8 7 2 1 4 3 9
2 4 1 3 8 9 6 5 7
5 9 3 8 4 1 7 6 2
2 1 8 7 6 3 4 9 5
7 6 4 9 2 5 1 3 8
4 3 6 5 9 2 8 1 7
1 8 5 4 3 7 9 2 6
9 2 7 1 8 6 5 4 3
3 4 1 6 5 8 2 7 9
6 5 9 2 7 4 3 8 1
8 7 2 3 1 9 6 5 4
7 1 4 5 8 9 2 3 6
8 5 2 3 6 4 7 1 9
3 6 9 1 7 2 8 5 4
2 3 1 9 4 6 5 7 8
6 8 5 7 3 2 9 4 1
9 4 7 8 1 5 3 6 2
1 7 8 6 9 3 4 2 5
4 2 3 1 5 8 6 9 7
5 9 6 4 2 7 1 8 3
#1 1
#2 0
#3 1
#4 0
#5 0
#6 1
#7 0
#8 1
#9 1
#10 0
문제 풀이
package sw.expert.academy;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class SW1974스도쿠검증 {
// 총 합이 되는 숫자는 45이다.
public static final int SUM = 45;
public static void main(String[] args) throws FileNotFoundException {
System.setIn(new FileInputStream("src/sw/expert/academy/input.txt"));
Scanner sc = new Scanner(System.in);
// T 입력
int T = sc.nextInt();
// test case
for (int t = 0; t < T; t++) {
int[][] map = new int[9][9];
// 스도쿠 입력 받기
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++)
map[i][j] = sc.nextInt();
}
// 정답 확인
int ans = 1;
// 가로, 세로 확인
for (int i = 0; i < 9; i++) {
int sumH = 0;
int sumV = 0;
for (int j = 0; j < 9; j++) {
sumH += map[i][j];
sumV += map[j][i];
}
if ((sumH != SUM) || (sumV != SUM)) ans = 0;
}
// 정사각형 확인
for (int i = 0; i < 9; i += 3) {
for (int j = 0; j < 9; j += 3) {
int sumS = 0;
for (int k1 = 0; k1 < 3; k1++) {
for (int k2 = 0; k2 < 3; k2++) {
sumS += map[i + k1][j + k2];
}
}
if (sumS != SUM) ans = 0;
}
}
// 정답 확인
System.out.printf("#%d %d\n", t + 1, ans);
}
sc.close();
}
}
한번에 훑으면서 확인을 해도 된다.
가로/세로/정사각형으로 각 라인의 합이 45인지 확인하면 된다.
# SWEA 스도쿠 검증 java
728x90
'✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > SW Expert Academy' 카테고리의 다른 글
[SW1238] Contact (0) | 2022.09.12 |
---|---|
[SW9299] 한빈이와 Spot Mart (0) | 2022.08.08 |
[SW1961] 숫자 배열 회전 (0) | 2022.07.14 |
[SW2001] 파리퇴치 (0) | 2022.07.12 |
[SW1979] 어디에 단어가 들어갈 수 있을까 (0) | 2022.07.08 |