기한 지나서 질문하겠습니다!

2001joe Reply 3 years 45 weeks ago
main함수와 제가 만든 find라는 함수 사이의 매개변수 설정이 힘들어서 find함수 활용을 못하고, 행 열 3*3 검증을 하고 나서 triple sum 조건도 검사하려는데 어디에서 검사를 해야 하는지 잘 몰라 질문드립니다..! 코드 전체적으로 고칠 점이 있다면 어떤 부분이 있을지 말씀해주시면 감사하겠습니다 ㅡㅜㅜ
withcs2 Reply 3 years 45 weeks ago
백트래킹을 사용하실 수 있으시군요 축하드립니다. is_valid에서 return 1 직전에 triple sum 검사해보는 건 어떨까요? 모든 경우의 수를 다 테스트해보는 백트래킹 특성상 그렇게 만들면 TLE가 발생할 수밖에 없습니다. 불가능한 경우를 미리 걸러내서 시간을 줄여야 합니다. 하나 채울 때마다 일일이 모든 칸이 전부 채워졌는지 확인하기보다는 solve1에서 현재 어느 부분 채우고 있는지 매개변수 전달하고, 마지막 칸 검사 중이면 가득 채워졌다고 보시는 게 좋을 것 같아요!
2001joe Reply 3 years 45 weeks ago
감사합니다! 그런데 is_valid의 return 1; 직전에 triple sum 검사를 하게 되면 한 행이 다 채워지지 않는 이상 return 0; 이 되지 않을까요?
withcs2 Reply 3 years 45 weeks ago
한 행이 다 채워지지 않았을 때도 return 1해보면 어떨까요?
2001joe Reply 3 years 45 weeks ago
한번 수정해 보았는데요 ,, 답은 아니지만 스도쿠 규칙대로 한 행은 출력했는데, 여기에서 또 부족한 부분이 어디가 있을까요 .,,? 번거롭게 해드려서 죄송합니다 ㅜㅜ
2001joe Reply 3 years 45 weeks ago