gagdusol   4년 전

안녕하세요, 17142 문제에 대해 질문드립니다.

제출 시, 시간초과로 나옵니다.
기본적으로 활성화 바이러스를 맵에서 정하는 것은 dfs()함수 내에서 정했고, 활성화 바이러스를 고르면, 그 값들을 -2로 바꿔줍니다. 그리고 비활성화 바이러스들은 모두 -1로 바꿔줍니다.
bfs()함수에서는 활성화바이러스들이 퍼지게 됩니다.
dfs()내부에서 bfs()를 호출하며, 큐를 이용해서 bfs()를 구현하였는데, 혹시 시간초과가 나는 의심가는 부분이 어디인지 의견을 구할 수 있을까요?

감사합니다.

ekdya93   4년 전


코드를 제대로 본건 아닌데

copy_from_to 함수를 너무 많이 호출하시는거같습니다.

활성시킬 바이러스를 다 고르고 나서 bfs에 들어가기 전에 한번만 bfs용으로 map을 copy해야될거같은데

dfs를 한단계 한단계 돌때마다 copy_from_to함수가 호출되는게 일단 비효율적으로 보입니다 !

gagdusol   4년 전

그 copy_from_to함수를 dfs할때는 삭제해봤습니다.

그런데도 똑같이 시간초과가 나네요.. 조언 감사합니다.ㅠ 좀더 고민해보고 있는데 잘 모르겠네요

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