#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int data[9][9];
void sudoku(int x, int y)
{
int line[10];
for (int i = 0; i < 10; i++)
line[i] = 0;
int zerocount = 0;
int zerocount2 = 0;
for (int i = 0; i < 9; i++)
{
line[data[x][i]]++;
zerocount++;
}
int line2[10];
for (int i = 0; i < 10; i++)
line2[i] = 0; //구획에 있는 숫자를 비교할 line2
//해당 구획에 있는 수를 찾는다.
for (int i = (x / 3)*3; i < (x / 3)*3 + 3; i++)
for (int j = (y / 3)*3; j < (y / 3)*3 + 3; j++)
{
zerocount2++;
line2[data[i][j]]++; //구획에 있는 숫자 처리
}
for(int _ = 0 ; _ < zerocount*zerocount2 ; _++)
for (int i = 1; i < 10; i++)
{
if (line[i] == 0 && line2[i] == 0) //채워질 숫자를 찾았을 경우
data[x][y] = i;
}
}
int main()
{
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
scanf("%d", &data
[i
][j
]);
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
if (data[i][j] == 0)
sudoku(i, j);
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
}
return 0;
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwoKI2luY2x1ZGUgPHN0ZGlvLmg+CgoKCgoKaW50IGRhdGFbOV1bOV07Cgp2b2lkIHN1ZG9rdShpbnQgeCwgaW50IHkpCnsKCWludCBsaW5lWzEwXTsKCWZvciAoaW50IGkgPSAwOyBpIDwgMTA7IGkrKykKCQlsaW5lW2ldID0gMDsKCglpbnQgemVyb2NvdW50ID0gMDsKCWludCB6ZXJvY291bnQyID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDwgOTsgaSsrKQoJewoJCWxpbmVbZGF0YVt4XVtpXV0rKzsKCQl6ZXJvY291bnQrKzsKCX0KCgoJaW50IGxpbmUyWzEwXTsKCWZvciAoaW50IGkgPSAwOyBpIDwgMTA7IGkrKykKCQlsaW5lMltpXSA9IDA7CQkvL+q1rO2ajeyXkCDsnojripQg7Iir7J6Q66W8IOu5hOq1kO2VoCBsaW5lMgoKCQkvL+2VtOuLuSDqtaztmo3sl5Ag7J6I64qUIOyImOulvCDssL7ripTri6QuCglmb3IgKGludCBpID0gKHggLyAzKSozOyBpIDwgKHggLyAzKSozICsgMzsgaSsrKQoJCWZvciAoaW50IGogPSAoeSAvIDMpKjM7IGogPCAoeSAvIDMpKjMgKyAzOyBqKyspCgkJewoJCQl6ZXJvY291bnQyKys7CgkJCWxpbmUyW2RhdGFbaV1bal1dKys7CS8v6rWs7ZqN7JeQIOyeiOuKlCDsiKvsnpAg7LKY66asCgkJfQoKCgoKCWZvcihpbnQgXyA9IDAgOyBfIDwgemVyb2NvdW50Knplcm9jb3VudDIgOyBfKyspCgkJZm9yIChpbnQgaSA9IDE7IGkgPCAxMDsgaSsrKQoJCXsKCQkJaWYgKGxpbmVbaV0gPT0gMCAmJiBsaW5lMltpXSA9PSAwKQkJLy/ssYTsm4zsp4gg7Iir7J6Q66W8IOywvuyVmOydhCDqsr3smrAKCQkJCWRhdGFbeF1beV0gPSBpOwoJCX0KfQoKaW50IG1haW4oKQp7Cglmb3IgKGludCBpID0gMDsgaSA8IDk7IGkrKykKCQlmb3IgKGludCBqID0gMDsgaiA8IDk7IGorKykKCQkJc2NhbmYoIiVkIiwgJmRhdGFbaV1bal0pOwoKCglmb3IgKGludCBpID0gMDsgaSA8IDk7IGkrKykKCQlmb3IgKGludCBqID0gMDsgaiA8IDk7IGorKykKCQkJaWYgKGRhdGFbaV1bal0gPT0gMCkKCQkJCXN1ZG9rdShpLCBqKTsKCgoKCglmb3IgKGludCBpID0gMDsgaSA8IDk7IGkrKykKCXsKCQlwcmludGYoIlxuIik7CgkJZm9yIChpbnQgaiA9IDA7IGogPCA5OyBqKyspCgkJCXByaW50ZigiJWQgIiwgZGF0YVtpXVtqXSk7Cgl9CgoKCXJldHVybiAwOwp9
MCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDA=
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0