이 문제를 풀고있는데 어떤 점이 틀린 건지 감이 잘 오지 않아서 질문드립니다. 현재 제 로직은 우선 진입을 하기 위해서는 가장 바깥쪽부터 탐색을 해야 하니까 바깥껍질의 상태에 따라서 Queue에 넣어주거나 Keep에 넣어주거나 하는 방식으로 구현했습니다. Keep에 있는 좌표의 정보는 현재 key가 없어서 진입하지 못하는 문이 있는 장소입니다. q에 있는 좌표는 진입이 가능한 좌표들입니다. 그래서 문자열을 받을 때에 다음 코드와 같이 초기값 세팅을 해준 상태입니다. 그리고 현재 진입이 가능한 좌표들에 대해서 BFS를 돌리면서 문서면 ++해주고, key면 key에 추가해주는 식으로, 그리고 문일 때 키가 있으면 진입하고 키가 없으면 Keep Queue에 넣어주면서 Queue를 2개 돌렸습니다. 그런데 틀린 이유를 잘 모르겠습니다. 한번 봐주시면 감사하겠습니다..
adamdoha 4년 전
이 문제를 풀고있는데 어떤 점이 틀린 건지 감이 잘 오지 않아서 질문드립니다.
현재 제 로직은 우선 진입을 하기 위해서는 가장 바깥쪽부터 탐색을 해야 하니까
바깥껍질의 상태에 따라서 Queue에 넣어주거나 Keep에 넣어주거나 하는 방식으로 구현했습니다. Keep에 있는 좌표의 정보는 현재 key가 없어서 진입하지 못하는 문이 있는 장소입니다. q에 있는 좌표는 진입이 가능한 좌표들입니다. 그래서 문자열을 받을 때에 다음 코드와 같이 초기값 세팅을 해준 상태입니다. 그리고 현재 진입이 가능한 좌표들에 대해서 BFS를 돌리면서 문서면 ++해주고, key면 key에 추가해주는 식으로, 그리고 문일 때 키가 있으면 진입하고 키가 없으면 Keep Queue에 넣어주면서 Queue를 2개 돌렸습니다. 그런데 틀린 이유를 잘 모르겠습니다. 한번 봐주시면 감사하겠습니다..