횽들 나 지금 스도쿠 만드는 과제 하는 중인데 만들다 궁금한 것이 있어 글 올려
각 행과 열에 똑같은 숫자가 있으면 안되잖아? 그래서
(아직 3x3박스는 체크 안했구)
랜덤으로 뽑아낸 숫자를 행렬에서 검사하게 했어 대충 아래 처럼
----------------------------------------------
i, j가 현재 배열 위치
temp는 랜덤으로 받은 값
for(k=0;k<9;k++)
if(arr[i][k] ==temp || arr[k][j]==temp)
----------------------------------------------
이런식으로 돌렸는데 잘 나오다가 중간에 멈추네 ㅡㅡ;;(짤방 참고)
그것도 멈추는 곳이 지 멋대로고...
한번은 끝까지 나오기도하고 어쩔땐 멈추고 심란해...
횽들 도와줘 ㅜㅡ
ㅡㅡ; 검사하는 방법이 잘 못 됐네여. 멈춘부분을 보세여. 조건에 맞는 숫자가 없잖아여.
가장 간단하고 무식한 방법은 스도쿠가 완성될 때까지 계속 돌리는거에여 ㅋ
그러니까.. 조건이 명확하지 않아서 그러는거임. 스도쿠의 조건. 가로, 세로, 3x3 이것만 만족한다고해서 처음부터 저대로 숫자를 밀어 부치게 되면, 안되는거거든. 예를들어 수도쿠 문제를 푼다고 가정해봐. 문제에서 아무칸 잡고 저 3가지 조건을 만족하는 숫자를 찾아보면 대충 1 3 4 6 이런식으로 나온다고 했을때 저 4개 숫자가 다 들어갈수 있는게 아니자나. 단지 저 3가지 조건만이 아닌, 매우 심도있는 조건으로 완벽한 답을 찾아야 한다는거지.. 물론 그럴려면 스도쿠 정도는 마스터 하길 바래.
어제 완성했어 ㅣㅎ히