문제
백준 3197
설명
핵심 테크닉이 2개가 있음.
- L 에서 L 을 찾아가는 BFS
q1
과, X 를 없애는 BFS q2
를 총 한번만 수행함.
- X 를 없앤 좌표를
q1
에서 방문했었다면 그대로 q1
대기열에 집어넣음
혹은 queue 를 4개를 둬서 BFS 에서 막힌 구간만 기억해놓을 수 있음.
- 하지만 이러면 기억해놓은 queue 의 내용을 탐색용 queue 에 복사해야 해서 느림.
- 또한 중복되는 좌표가 들어가는 경우 TLE 가 뜰 수 있음
혹은 UnionFind 로 풀수도 있음
queue 대신 array 를 쓰면 시간이 미비하게 조금은 줄어듬. ( 92ms
-> 80ms
)
시간 복잡도
O(\(4RC\))
코드
댓글남기기