알고리즘 공부

[백준 22352번] 항체 인식 - java

철매존 2022. 1. 7. 17:00
728x90

문제 설명

1. NxM크기의 기존 세포와 백신 이후 세포가 있다.

2. 백신을 투여하면 그 위치에서 상하좌우가 다른 색으로 변경된다.

3. 변경되는색은 랜덤이며, 기존에 있는 색으로 변경될 수도 있다.

4. 이게 제대로 백신을 투여한게 맞는지 구하면 된다.

풀이 과정

 1. DFS문제이고, compare를 통해 구하면 쉽게 알 수 있다.

 2. 백신은 한 장소에만 맞기 때문에, 두 가지 map을 기존/이후 둘로 나눠서 둘이 다른 부분을 구한다.

 3. 둘이 다르면 그 위치는 뭔가 변형이 일어났다는 것이므로 그곳을 기준으로 DFS를 진행한다.

 4. 그 위치를 기준으로 상하좌우를 검색하여 본래 해당 위치 색과 동일한 색이라면 기존 세포와 연결된 곳이므로 백신이후 색으로 변경해 준다.

 5. 모든 위치를 탐색한 후, 기존세포와 이후세포를 비교하여 동일하면 YES, 아니면 NO이다.

 

코드