백준 2583 (C++) 영역 구하기
PS/BOJ 2021. 11. 27. 14:30

아이디어 1. input 2차원 배열을 예제의 모양대로 처럼 표현하기 위해서 그대로 넣을 수 없고 for (int i = y1; i < y2; i++) { for (int j = x1; j < x2; j++) { arr[m-i-1][j] = 1; } } 를 거쳐야 한다. 2. dfs dfs를 진행하면서, 인접한 행렬은 visit되었다고 체크해주고, main함수에서 이차원 배열이 visit되었는지 세면서 섬처럼 인접한 부분을 cnt해주면 분리된 영역의 개수를 알 수 있다. 여기서 각 분리된 영역의 넓이를 알기 위해 visit되지 않은 칸에 (값은 0) dfs함수가 재귀적으로 호출될 때마다 영역의 넓이를 더해줬다. 그리고 매 영역마다 넓이를 0으로 다시 초기화한다. 코드 #include #include #i..