godgod3260   5년 전

안녕하세요, Boggle문제 틀려서 질문올립니다. 

설계방식 ) 

  1.  4x4 그리드의 주사위를 입력받으면 바로 각 단어들을 저장한 ArrayList에서 하나씩 데이터를 가져옵니다. 

2. find함수에 단어를 매개변수로 ArrayList에서 뽑은 단어들을 넣어주면 그 단어의 0번째 인덱스의 알파벳이 주사위에 존재하는지 여부 확인 후, 존재하면 재귀를 통하여 해당 단어가 있는지를

확인합니다. 

3. 재귀함수명은  search이며, 가로세로대각선 총 8방향을 반복하여 다음알파벳이 있는지에 대한 유무에 따라 재귀가 실행됩니다. 리턴될때는 visited의 값을 원래대로 되돌려놓습니다.

4. 마지막에 단어가 만들어진다면 단어의 갯수를 1 증가시키고 단어길이에 해당하는 점수를 매겨 저장한 후, PriorityQueue에 저장합니다. 이 때 우선순위큐의 정렬방법은 문자열길이 확인하고 같은경우에는 문자열을 hashCode로 비교하여 정렬하는 방식입니다.

5. flag는 단어를 찾으면 재귀를 돌 필요없이 전부 return시키기 위하여 사용하였습니다. 

질문)

여러가지 테스트케이스를 만들어서 돌려봐도 문제는 없었는데 혹여, 설계상의 문제가있거나 조건이 누락된 부분이 있는지 찾을 수 없어 질문올립니다.

답변기다리겠습니다. 감사합니다.

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