백준 알고리즘 1012

은영·2023년 7월 13일
0

백준 알고리즘 공부

목록 보기
16/26

인접한 1 덩어리들의 개수를 세는 문제

BFS, DFS 문제 연습을 해보겠다고 풀었으면서 큐나 스택을 이용할 방법이 마땅히 떠오르지 않아 (0,0)부터 (N,M) 까지의 값들을 하나씩 확인한 후. 해당 값이 1이면서 오른쪽 값이나 아래쪽 값이 1인 경우 자기 자신의 값을 0으로 바꾸고 자기 자신만 1인 경우에만 흰나비 수를 카운트 하게끔 작성하였다.


그러나 틀렸다는 답을 받았다.

왜냐하면 나는 오른쪽과 아래의 값만 추가적으로 확인하였지 위와 왼쪽 값은 확인하지 않아 이미 0으로 바뀐 1값이 있는 경우 해당 코드가 제대로 확인하지 못 하기 때문이다.

아무래도 탐색을 위해 큐를 써서 BFS로 찾는 게 맞았던 거 같으나.. .내 머리로는 도저히 굴러가지 않아 구글링...

해서 얻은 코드는 아래와 같다


일단 큐를 활용한 것보다도 나랑 인덱스 관련 처리를 해놓은 게 달랐다. 왼쪽 오른쪽 위 아래 값을 다 확인하고 예외가 발생하지 않게끔 방향 배열을 설정해 새로운 값을 받아오고 범위를 벗어나지 않을 때만 수행하게끔 작성하는 법을 나도 참고하고 익혀야겠다.

그리고 큐를 생성해서 큐가 빌 때까지 반복적으로 주변 값이 1인지 탐색하게 함으로써 인접한 영역을 탐색하는데 적절했던 거 같다.

이번 문제는 다른 사람의 코드를 그대로 따라친 거니까... 이거 참고해서 BFS 문제를 여러번 풀어봐야 될 거 같다.

0개의 댓글

관련 채용 정보