알고리즘 연습

[ SWEA ] 1868. 파핑파핑 지뢰찾기 _ JAVA 문제풀이

코딩하는 너구리 2019. 10. 16. 17:28
반응형

 

풀이

 

 

이 문제 풀이는 크게 두 가지 분류로 나뉘지 않았을까 싶습니다.

1. 지뢰의 위치에서 시작하여 방문해야 할 지점들을 체크하는 경우와

2. 주변에 지뢰가 없는 ( 지뢰의 갯수 0 ) 지점의 갯수를 체크하는 경우로 나뉠 것 같습니다.

 

저 같은 경우에는 2번의 경우로 풀이하였습니다.

 

1 ->  주변에 지뢰가 없는 지점들 ( 0인 지점 ) 을 BFS를 이용해 해당 지점들을 '#'으로 바꿔주었습니다.

               -->  Check( ) 함수를 이용해 주변에 지뢰가 없는 지역임을 확인하였습니다.

                   --> 이 경우 한 번 클릭해야 하므로 cnt++을 해주었습니다.

 

2 -> BFS로 0이 되는 인근 지역들을 모두 제거해주었다면

 지뢰 ( * ) ,  지뢰 갯수 0  ( # ) 이 아닌

( . ) 의 갯수를 cnt++ 해주어 정답을 찾았습니다.

 

이 문제는 상하좌우와 대각선까지 모두 탐색해야 하므로

di, dj를 8가지로 8방탐색을 해주었습니다.

 

 

 

코드

 

 

 

 

 

 

 

출처

 

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LwsHaD1MDFAXc

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

 

 

반응형