문제 링크 : https://www.acmicpc.net/problem/2583


사각형을 놓았을 때 분리되는 영역이 몇개고 넓이가 어떻게 되는지 구하는 문제입니다.


영역의 갯수와 넓이는 DFS로 간단히 구할 수 있기 때문에 관건은 사각형을 놓는 방법입니다.


일반적으로 사용하는 2차원 배열은 (0, 0)이 왼쪽 위고 (N, M)이 오른쪽 아래인데, 문제에서는 왼쪽 아래가 (0, 0)이고 오른쪽 위가 (N, M)입니다.


하지만 괜히 어렵게 생각할 필요 없이 똑같이 구현하면 됩니다. 결국 모양만 다르게 나올 뿐 구하는 것에는 변함이 없습니다.


주어진 좌표들을 가지고 2차원 배열을 1로 채우고 나중에 DFS로 좌표값이 0인 부분만 세주면 됩니다.


오름차순으로 출력해야 하기 때문에 우선순위 큐를 사용하였습니다.


+ Recent posts