반응형
풀이
이 문제 풀이는 크게 두 가지 분류로 나뉘지 않았을까 싶습니다.
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
반응형
'알고리즘 연습' 카테고리의 다른 글
[ SWEA_D1 ] 2050. 알파벳을 숫자로 변환 _ JAVA 문제풀이 (0) | 2019.10.16 |
---|---|
[ 백준_BOJ ] 2564. 경비원 _ JAVA 문제풀이 (0) | 2019.10.16 |
[ 백준_BOJ ] 1717. 집합의 표현 _ JAVA 문제풀이 (0) | 2019.10.16 |
[백준_BOJ] 1157. 단어공부 _ JAVA 문제풀이 (0) | 2019.10.16 |
[ 수학 ] 최대공약수와 최소공배수 연습하기 JAVA (0) | 2019.10.16 |