dltjr0703   2년 전

저는 문제를 이렇게 풀었어요(맞추긴 했습니다)

"빈칸이 채워지는 조건이 항상 맞다는 가정 하에 마지막 빈칸이 채워지면 스도쿠 풀이 끝"

이렇게 풀었는데

exit(0)를 하지 않으면, 즉 프로그램 강제 종료하지 않는 이상 마지막 빈칸이 채워져도 

다시 스택에 있는 걸 꺼내서 또 다시 다음 숫자를 대입하더라구요

예를 들어 0 0 0 ... 0 0 0을 넣어다 치면

dfs(81,81)에서 종료해야하는데(81번째 빈칸, 즉 마지막 빈칸을 채움)

dfs(81,81)전에 스택에 있던 dfs(80,80)의 그 다음 코드를 실행, 그 전 스택 다음 코드 실행....이렇게되서 실행을 너무 많이 하더라구요

이럴 땐 무슨 재귀 함수 종료 조건을 써야할까요?

(함수가 정상 종료되었으면 좋겠습니다)

jjang36524   2년 전

dfs에서 정답이 만들어졌는지를 리턴하고, 어떤 숫자를 채웠을 때 정답이 만들어졌으면 바로 정답이 만들어졌음을 리턴하면 됩니다.

dltjr0703   2년 전

간단한 거였는데 어제 풀 때 스도쿠 푸는거 자체에만 너무 머리를 썼는지

생각을 못했네요

댓글 보자마자 해결했습니다 ㅎㅎ...

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