heeda0528   3년 전

질문이 6페이지나 있어 다 읽어보지 못하고 해결된 질문만 읽었지만 문제를 알 수 없어 이렇게 글을 올립니다. 코드를 열심히 짜보았지만 예제부터 돌아가지 않아 답답한 상황입니다ㅜㅜ

우선 a배열은 스도쿠를 저장, z배열은 스도쿠의 값이 0인 인덱스를 저장하기 위한 배열로 c변수를 통해 조절합니다. 그리고 sq배열은 3*3칸에 1~9의 수가 들어갔는지 확인하기 위한 배열입니다. (속도향상을 위해 넣었습니다.) 제가 인덱스의 범위를 (0,0)~(8,8)로 잡았기 때문에 x,y좌표를 3으로 나눠주면 같은 3*3에 들어있는 좌표들을 하나로 합칠 수 있을거라고 생각했습니다.

chk함수는 a[x][y]에 n이 들어가도 되는지 판별하는 함수입니다. 그리고 bt함수는 백트래킹을 위한 함수로, 인덱스가 0인, 즉 z배열에 저장한 값들에 대해서만 진행했습니다. 이때 z배열 끝까지 돈 경우 스도쿠를 출력하고 종료하였지만, 여러 예제를 넣어본 결과 출력이 전혀 되지 않음을 알 수 있었습니다. 또한 완벽한 스도쿠가 입력으로 주어질 경우 오류가 날 것 같아 예외처리하였습니다.

댓글을 작성하려면 로그인해야 합니다.