Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit cfad11b

Browse files
committed
issue #42 2580 ์Šค๋„์ฟ 
1 parent 3b98755 commit cfad11b

File tree

2 files changed

+116
-0
lines changed

2 files changed

+116
-0
lines changed

โ€Žsrc/backjoon/_2580.java

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
package backjoon;
2+
// https://www.acmicpc.net/problem/2580
3+
4+
import java.io.BufferedReader;
5+
import java.io.IOException;
6+
import java.io.InputStreamReader;
7+
import java.util.StringTokenizer;
8+
9+
public class _2580 {
10+
11+
public static int[][] arr = new int[9][9]; //์Šค๋„์ฟ  ํŒ
12+
13+
public static void main(String[] args) throws IOException {
14+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
15+
//sol memory 19172 runtime 388
16+
for (int i = 0; i < 9; i++) {
17+
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
18+
for (int j = 0; j < 9; j++) {
19+
arr[i][j] = Integer.parseInt(st.nextToken());
20+
}
21+
}
22+
23+
sudoku(0, 0);
24+
}
25+
26+
public static void sudoku(int row, int col) {
27+
// ํ•ด๋‹น ํ–‰์ด ๋‹ค ์ฑ„์›Œ์ง„ ๊ฒฝ์šฐ ๋‹ค์Œํ–‰์œผ๋กœ ๊ฐ€๊ธฐ
28+
if (col == 9) {
29+
sudoku(row + 1, 0);
30+
return;
31+
}
32+
33+
// ํ–‰๊ณผ ์—ด์ด ๋‹ค ์ฑ„์›Œ์ง„ ๊ฒฝ์šฐ ์Šค๋„์ฟ  ํŒ ์ถœ๋ ฅํ•˜๊ธฐ
34+
if (row == 9) {
35+
StringBuilder sb = new StringBuilder();
36+
for (int i = 0; i < 9; i++) {
37+
for (int j = 0; j < 9; j++) {
38+
sb.append(arr[i][j]).append(" ");
39+
}
40+
sb.append("\n");
41+
}
42+
System.out.println(sb);
43+
// ์Šค๋„์ฟ  ํŒ์„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฟ์ธ ๊ฒฝ์šฐ๋Š” ๊ทธ ์ค‘ ํ•˜๋‚˜๋งŒ์„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‹œ์Šคํ…œ ์ข…๋ฃŒ
44+
System.exit(0);
45+
}
46+
47+
// ๋งŒ์•ฝ ํ•ด๋‹น ์œ„์น˜๊ฐ€ 0 ์ด๋ผ๋ฉด 1๋ถ€ํ„ฐ 9๊นŒ์ง€ ์ค‘ ๊ฐ€๋Šฅํ•œ ์ˆ˜ ํƒ์ƒ‰
48+
if (arr[row][col] == 0) {
49+
for (int i = 1; i <= 9; i++) {
50+
// i ๊ฐ’์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”์ง€ ๊ฒ€์‚ฌ
51+
if (possibility(row, col, i)) {
52+
arr[row][col] = i;
53+
sudoku(row, col + 1);
54+
}
55+
}
56+
arr[row][col] = 0;
57+
return;
58+
}
59+
60+
sudoku(row, col + 1);
61+
62+
}
63+
64+
public static boolean possibility(int row, int col, int value) {
65+
// ๊ฐ™์€ ํ–‰ ๊ฒ€์‚ฌ
66+
for (int i = 0; i < 9; i++) {
67+
if (arr[row][i] == value) {
68+
return false;
69+
}
70+
}
71+
72+
// ๊ฐ™์€ ์—ด ๊ฒ€์‚ฌ
73+
for (int i = 0; i < 9; i++) {
74+
if (arr[i][col] == value) {
75+
return false;
76+
}
77+
}
78+
79+
// 3*3 ์นธ ๊ฒ€์‚ฌ
80+
int set_row = (row / 3) * 3; // value๊ฐ€ ์†ํ•œ 3x3์˜ ํ–‰์˜ ์ฒซ ์œ„์น˜
81+
int set_col = (col / 3) * 3; // value๊ฐ€ ์†ํ•œ 3x3์˜ ์—ด์˜ ์ฒซ ์œ„์น˜
82+
83+
for (int i = set_row; i < set_row + 3; i++) {
84+
for (int j = set_col; j < set_col + 3; j++) {
85+
if (arr[i][j] == value) {
86+
return false;
87+
}
88+
}
89+
}
90+
return true; // ์ค‘๋ณต๋˜๋Š” ๊ฒƒ์ด ์—†์„ ๊ฒฝ์šฐ true ๋ฐ˜ํ™˜
91+
}
92+
}
93+
/*
94+
INPUT
95+
0 3 5 4 6 9 2 7 8
96+
7 8 2 1 0 5 6 0 9
97+
0 6 0 2 7 8 1 3 5
98+
3 2 1 0 4 6 8 9 7
99+
8 0 4 9 1 3 5 0 6
100+
5 9 6 8 2 0 4 1 3
101+
9 1 7 6 5 2 0 8 0
102+
6 0 3 7 0 1 9 5 2
103+
2 5 8 3 9 4 7 6 0
104+
105+
OUTPUT
106+
1 3 5 4 6 9 2 7 8
107+
7 8 2 1 3 5 6 4 9
108+
4 6 9 2 7 8 1 3 5
109+
3 2 1 5 4 6 8 9 7
110+
8 7 4 9 1 3 5 2 6
111+
5 9 6 8 2 7 4 1 3
112+
9 1 7 6 5 2 3 8 4
113+
6 4 3 7 8 1 9 5 2
114+
2 5 8 3 9 4 7 6 1
115+
*/

โ€Žsrc/backjoon/_9663.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public class _9663 {
1212
public static int count = 0;
1313

1414
public static void main(String[] args) throws IOException {
15+
// memory 12052 runtime 5728
1516
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
1617
N = Integer.parseInt(br.readLine());
1718
arr = new int[N];

0 commit comments

Comments
ย (0)