스도쿠
[WEB] 스도쿠 풀이 프로그램 #4
이전 글에서 python으로 만들었던 스도쿠 풀이 프로그램을 누구나 바로 사용할 수 있도록 html, css, js로 다시 만들어보았다. 간단하게 알고리즘을 설명하자면 입력받은 스도쿠가 해결가능한지 확인한다. 재귀함수로 구현한 백트래킹 알고리즘을 사용해 입력받은 스도쿠의 해를 찾는다. 만약 해가 있다면, 밑에 출력한다. 해를 찾을 수 없다면, 'Unable To solve Sudoku'를 출력한다. 소스코드 참고 - https://github.com/siejwkaodj/sudoku_solver_online Sudoku Solver Made by Hansj 설명 빈 칸에 스도쿠에 적혀있는 1-9 사이의 숫자를 입력하세요. 0을 입력하면 다음 칸으로 넘어갑니다. 파일 업로드는 .csv 또는 .txt파일만 가..
[Python] 스도쿠 풀이 프로그램 #3
저번 글에 이어 이 글에서는 어려운 스도쿠를 풀 수 있는 프로그램을 설명한다. 백트래킹을 이용해 이를 구현했고, 생각보다 정말 간단하게 구현이 되었다. 먼저 사용된 함수는 다음과 같다. def possibilities(i, j): global sudoku exist = [] for k in range(9): if sudoku[k][j] != 0: exist.append(sudoku[k][j]) if sudoku[i][k] != 0: exist.append(sudoku[i][k]) if sudoku[i//3*3 + k//3][j//3*3 + k%3] != 0: exist.append(sudoku[i//3*3 + k//3][j//3*3 + k%3]) unexist = [i for i in range(1, 1..
[Python] 스도쿠 풀이 프로그램 #2
'쉬운' 스도쿠를 풀 수 있는 스도쿠 알고리즘을 알아보자. 먼저 원리는 다음과 같다. 1. 빈칸이 있는 스도쿠를 입력받는다. 2. 숫자가 없는 빈칸(가능성 칸)에 각각 들어갈 수 있는 수들을 채워 준다. 3. 행, 열, 블록(3 * 3 칸) 내에서 각각 가능성 칸에 있는 수가 유일한 수가 있다면 그 4. 이를 반복한다.숫자를 채운다. 이 알고리즘을 사용하면 가정이 필요한 스도쿠 이외의 모든 쉬운 스도쿠를 풀 수 있다. 코드는 다음과 같다. https://github.com/siejwkaodj/Sudoku/blob/second/sudoku_2.py GitHub - siejwkaodj/Sudoku: 스도쿠 풀이 알고리즘 스도쿠 풀이 알고리즘. Contribute to siejwkaodj/Sudoku deve..