티스토리 뷰
풀이
입력으로 들어온 배열이 1차원으로 들어왔다. 연산을 편하게 하기 위해 우선 2차원 배열로 옮기는 작업을 수행하였다.
그다음부터는 다음 순서대로 진행하였다.
-
현재 칸이 '.'가 아니면 현재 칸을 기준으로 오른쪽, 아래, 오른쪽 아래를 검사하여 4칸의 문자가 같은지 비교를 한다. 만약 4개 전부 같은 문자면 방문 배열 4개를 전부 true로 해준다.
-
true로 해놓은 곳을 전부 '.'로 바꾼다.
-
아래부터 탐색해서 위로 올라가면서 '.'인 것을 찾는다. 찾으면, 해당 행을 한 칸씩 위로 올라가 보면서 '.'아닌 것이 나올 때까지 탐색하여 나오면 처음 시작 위치로 대입하고 그곳은 '.'로 바꾼다. 그리고 메서드를 종료한다.
-
이런 식으로 while문을 통해 계속 시도한다. 언제까지 하냐면 '.' 바꿀 수 있는 칸이 하나도 나오지 않을 때까지 시도한다.(여기서는 chkDir메서드에서 하나라도 칸을 '.'로 바꾸게 되면 flag를 true로 주는데 하나도 바꾸지 않으면 false 그대로이므로 while문을 빠져나오도록 break 한다.)
-
마지막으로 '.'인 칸의 개수를 카운트한다.
코드
'알고리즘' 카테고리의 다른 글
<프로그래머스> 방금 그곡 (0) | 2021.01.18 |
---|---|
<프로그래머스> 2018 KAKAO BLIND RECRUITMENT [1차] 캐시 (0) | 2021.01.16 |
<baekjoon> 트리의 부모 찾기 (0) | 2021.01.09 |
<baekjoon> 1068 트리 (0) | 2021.01.08 |
<baekjoon> 바이러스 (0) | 2020.12.24 |