iloveelsa   2년 전

3시간 동안 붙잡아도 답이 안 나와서 도움 요청해봅니다.

우선 코드가 더러워서 죄송합니다.

기본적으로 DFS를 사용하고 클래스와 HashSet을 사용해 이미 한 번 사용한 간선은 제외하고 탐색합니다.

칸이 사라지는 건 cnt에 1씩 더해서 cnt보다 큰 쪽으로만 이동할 수 있게 구현을 했고, pop으로 빠질 때 cnt를 다시 복구하는 방식입니다.

종료 조건은 플레이어가 다음 이동할 수가 n에 도달하거나 넘으면 1을 출력, 스택이 다 비어버리면 0을 출력하도록 했습니다.

계속 86%에서 실패하니까 손을 못 놓겠네요... HashSet 대신 ArrayList를 사용하면 시간초과가 뜹니다. hashCode() 문제인가 싶어서 hashCode() 메서드를 다양하게 정의해봐도 86%에서 실패합니다.

바쁘신 와중에도 봐주셔서 감사합니다.

azaraks   2년 전

BFS로 하면 해당 지점만 visited에 남기면 되니 Vertex가 필요없습니다.

iloveelsa   2년 전

azaraks 

아 제가 잘못 생각했었네요. 생각해보니까 굳이 들렸던 곳을 빙 돌아서 들릴 필요가 없어서 간선을 저장하는 것이 아니라 그냥 visited로 해도 되는 거였습니다. DFS로 visited 체크해도 되더라구요. 다만, 위 코드에서는 그게 문제가 아니었고 다른 곳을 바꿔서 풀었습니다! 도와주셔서 감사합니다.

dudwls901   1년 전

어떻게 해결하셨나요?

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