STL에서 주어지는 자료 구조를 적극활용하기 위해서 list, vector, stack을 이용했습니다.

 

주어진 스도쿠 cell 대비 임시로 temp_cell 을 만들어서 사용했습니다.

 

temp_cell은

스도쿠 cell에 값이 들어가 있느냐 아니느냐? -> Yes or No? -> bool

스도쿠 cell에 들어갈 수 있는 값이 무엇이냐? -> vector도 좋지만 전 list를 추천합니다.

스도쿠 cell이 속한 박스의 번호가 무엇이냐? -> 정수 하나만 있음 되겠네요. int

 

그리고, 셀 각각에 대하여 스도쿠를 돌며 사용 가능한 값을 찾는 방법을 제안했는데, 방법을 바꿉니다.

스도쿠를 돌며 이미 들어가 있는 값의 행과 열을 조사합니다.

그걸 스택에 넣어두고, 스택을 하나씩 꺼내며, 해당하는 행을 돌며 값을 지우고, 해당하는 열을 돌며 값을 지웁니다.

 

한편, 박스를 돌며 박스에서 조사된 값들도 넣어놔야죠.

리스트가 참 다루기가 쉬워서 리스트를 쓰는데, 리스트를 배열처럼 쓰는 방법은 모르겠더라구요.

그래서, 구조체를 썼습니다.

박스의 번호 -> 정수면 되겠네요. int

박스에 들어간 값들 -> list

 

 

이런 자료 구조들을 이용해서, 값들을 찾아보면, 각 셀에 대하여 유일하게 한 개의 값을 저장할 수 있는 경우가 있습니다.

그럼, 값을 채워주고 또 위의 과정을 반복하면 되죠.

 

이러면 naked single 의 방법으로 값을 모두 채우게 됩니다.

Posted by 공돌이pooh
,