na982라는 유튜버의 영상을 참고 했을 때
맵의 크기가 10을 넘지 않으므로
vector<int> virus;
virus.push(y*10, x);
queue<int> q;
for(auto it = virus.begin(); it != virus.end(); ++it)
q.push(*it);
int cur = q.front();
q.pop();
int cy = cur/10;
int cx = cur%10;
이런식의 저장 방식도 꽤 괜찮은 거 같군요.
luckyquit 4년 전
패스한 코드입니다.
코드를 보시면 bfs() 함수에서 맵과 바이러스 좌표를 담은 벡터를 계속해서 복사하는 식입니다.
맵의 크기는 8*8이라서 크지는 않지만 dfs로 3개의 벽을 세우는 모든 경우를 전부 복사한 후에 비교하기 때문에
꽤 많은 시간을 뺏긴다고 생각합니다.
이 부분을 개선시킬 방법이 있을까요? 힌트라도 좋습니다.
그 외에 개선점도 지적해주시면 감사하겠습니다.