알고리즘 연습
[ 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
반응형