Recent Posts
Notice
No Rules Rules
스도쿠 (feat. 백준, 2239번) 본문
728x90
반응형
스도쿠
https://www.acmicpc.net/problem/2239
// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <string.h>
using namespace std;
char arr[9][9];
bool row[9][10], column[9][10], rect[9][10];
void dfs(register int cnt){
register int x = cnt / 9, y = cnt % 9;
if(cnt == 81){
for(x = 0; x < 9; ++x){
for(y = 0; y < 9; ++y)
cout << (int)arr[x][y];
cout << "\n";
}
exit(0);
}
if(!arr[x][y]){
for(register int i = 1; i <= 9; ++i)
if(!row[x][i] && !column[y][i] && !rect[(x / 3) * 3 + (y / 3)][i]){
row[x][i] = column[y][i] = rect[(x / 3) * 3 + (y / 3)][i] = true;
arr[x][y] = i;
dfs(cnt + 1);
row[x][i] = column[y][i] = rect[(x / 3) * 3 + (y / 3)][i] = false;
arr[x][y] = 0;
}
}
else
dfs(cnt + 1);
}
int main(){
ios::sync_with_stdio(false), cin.tie(NULL);
memset(row, false, sizeof(row));
memset(column, false, sizeof(column));
memset(rect, false, sizeof(rect));
for(register int x = 0, y; x < 9; ++x)
for(y = 0; y < 9; ++y){
cin >> arr[x][y], arr[x][y] -= '0';
if(arr[x][y])
row[x][arr[x][y]] = column[y][arr[x][y]] = rect[(x / 3) * 3 + (y / 3)][arr[x][y]] = true;
}
dfs(0);
return 0;
}
// *&)*@*
반응형
이전에 풀이했던 "스도쿠" 와 동일한 문제입니다.
728x90
반응형
'생활 > 코테' 카테고리의 다른 글
적록색약 (feat. 백준, 10026번) (0) | 2022.10.05 |
---|---|
특정 거리의 도시 찾기 (feat. 백준, 18352번) (0) | 2022.10.05 |
말이 되고픈 원숭이 (feat. 백준, 1600번) (1) | 2022.10.04 |
출석 이벤트 (feat. 백준, 25704번) (0) | 2022.10.04 |
포인터 공부 (feat. 백준, 25703번) (0) | 2022.10.04 |
Comments