sss654654   2년 전

지금까지 bfs문제를 몇개풀어왔어서 저는 이문제를 보고 1926번 그림의 문제와 비슷하다고 생각했습니다. 다만 알고리즘을 떠올리려 생각해보니 감이 잡히지 않습니다. 기본 bfs로 풀수있는 문제인가요? 그렇다면 그림과의 bfs 차이점은 무엇인가요?

wizardrabbit   2년 전

안녕하세요?

말씀하신 '그림' 문제랑 '영역 구하기' 문제 모두 아직 풀어보지는 않았지만, 확인해 보니 두 문제가 상당히 비슷하네요. '그림' 문제를 이미 푸셨다면 이 문제도 비슷한 방법으로 접근해서 푸실 수 있을 것 같습니다.

'그림' 문제와 '영역 구하기' 문제 모두 동일하게 2차원 배열을 선언하고 내부에 직사각형 형태로 데이터를 넣는 것까지는 동일해 보입니다. 다만 '그림'은 이후 그려진 부분만을 탐색해 그림의 개수와 크기를 구하고, '영역 구하기' 는 반대로 직사각형에 의해 분리된 구역의 개수와 크기를 구하는 것이니, 직사각형이 그려지지 않은 부분을 탐색해야 한다는 점이 차이점이겠네요.

'그림' 문제로 비유하면, '그림' 문제는 칠해진 부분의 영역의 개수 및 크기를 구하는 것이고, '영역 구하기' 문제는 칠해지지 않은 부분의 영역의 개수 및 크기를 구하는 것이라 생각됩니다. 단순히 그래프의 연결 여부만 판단하면 되므로 '그림' 문제와 마찬가지로 본 문제 또한 DFS나 BFS 중 어떤 방식을 사용해도 문제를 풀 수 있을 것이라 생각됩니다.

preview

대략 이런 식으로 탐색하면 될 것 같습니다.

sss654654   2년 전

길고 자세한 설명 정말 감사합니다. 복받으실거에요 ㅠㅠ.. 화이팅하겠습니다!

댓글을 작성하려면 로그인해야 합니다.