dhgks4002   4년 전

논리상 구조가 맞다고 생각하는데 몇몇 상황은 답이 맞는데 틀릴때가 더 많은것 같습니다.

봐주시면 감사하겠습니다.

djm03178   4년 전

처음에 큐에 바이러스의 좌표들을 넣고 있는데, 이후 처음 벽을 3개 세워보았을 때 전부 pop해버린 이후로는 큐에 아무것도 남지 않아 이후 세워보는 벽 조합들에 대한 계산이 제대로 이루어지지 않습니다.

또한 한 번 탐색이 끝났으면 탐색한 흔적을 다 지우고 다음 탐색을 해야 합니다. 122번째 줄에서만 한다고 되는 게 아닙니다. 예를 들어 2개의 벽을 세워놓고 3번째 벽을 한 좌표에 세우고 탐색한 뒤, 3번째 벽을 바로 옆자리에 다시 놓았을 때 이미 원래 상태로 돌아간 상태에서 탐색해야 합니다.

dhgks4002   4년 전

@djm03178

queue에 집어넣어 한번 pop하면 queue에 데이터가 없는 문제는 아래 수정된 코드와 같이 바이러스가 있는 좌표를 vector에 저장하여 pop하지 않고 for문을 이용하여 데이터가 나가지 않고 읽는방법으로 해결할 수 있을것 같습니다.

하지만 djm03178님께서 지적해주신 2개의 벽을 세워놓고 3번째 벽을 세우고 탐색한 뒤, 3번째 벽을 다음자리로 다시 놓았을때 이전 상태로 돌아간 상태에서 탐색해야 하는 부분을 어떻게 구현해야할지 잘 모르겠습니다. 조금의 힌트를 주신다면 감사하겠습니다.


djm03178   4년 전

복사를 미리 해두고 벽을 세우지 말고, 벽을 3개 다 세울 때까지 원본 배열에서 작업하다가, 바이러스 확산을 검사하기 직전에 복사해서 진행하면 됩니다.

dhgks4002   4년 전

@djm03178

늦은시간에 답변감사합니다. 

답변해주신 해결방안으로 고쳐봤는데 더이상 틀린부분이 보이질 않습니다 ..

혹시 마지막으로 도움을 받을 수 있을까요..

djm03178   4년 전

하나만 고치면 맞습니다. 271번째 줄의 cp를 map으로 바꾸면 됩니다.

그런데 이 문제에 제출해본 기록이 아예 없으시네요.

dhgks4002   4년 전

@djm03178

아 저곳을 깜빡했네요 ,.

제출을 안한것은 다른의미가 있는것은 아니고 IDE로 작업중 테스트케이스가 1개만 되길래 계속 IDE에서 작업중이였습니다ㅠ.

 그래서 틀리게 제출 후 다시 정답을 제출하였습니다.

도움주셔서 감사합니다

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