From 728bfc9125146c67d4c5b84637423d6833b41708 Mon Sep 17 00:00:00 2001 From: sh0723 Date: Mon, 25 May 2026 15:41:50 +0900 Subject: [PATCH] =?UTF-8?q?2468=20:=20=EC=95=88=EC=A0=84=EC=98=81=EC=97=AD?= =?UTF-8?q?=20solve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/week2/BOJ2468/BOJ2468_V1.cpp | 61 ++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/week2/BOJ2468/BOJ2468_V1.cpp diff --git a/src/week2/BOJ2468/BOJ2468_V1.cpp b/src/week2/BOJ2468/BOJ2468_V1.cpp new file mode 100644 index 0000000..d0f5b4b --- /dev/null +++ b/src/week2/BOJ2468/BOJ2468_V1.cpp @@ -0,0 +1,61 @@ +#include +using namespace std; +vector> space; +vector> visited; +int N; +int dy[4] = {-1, 0, 1, 0}; +int dx[4] = {0, 1, 0, -1}; + +void dfs(int y, int x, int water){ + visited[y][x] = 1; + + for (int i = 0; i < 4; i++) { + int ny = y + dy[i]; + int nx = x + dx[i]; + + if (ny < 0 || nx < 0 || ny >= N || nx >= N || visited[ny][nx] || space[ny][nx] <= water) continue; + + dfs(ny, nx, water); + } +} +int main() { + + ios_base::sync_with_stdio(false); + cin.tie(NULL); + cout.tie(NULL); + + cin >> N; + int max_val = -1; + for (int i = 0; i < N; i++) { + space.push_back(vector()); + visited.push_back(vector()); + for (int j = 0; j < N; j++) { + int temp; + cin >> temp; + if (temp > max_val) max_val = temp; + space[i].push_back(temp); + visited[i].push_back(0); + } + } + + + int max_cnt = -1; + for (int k=0; k <= max_val; k++) { + int cnt = 0; + for (int i = 0; i < N; i++) { + for (int j = 0; j < N; j++) { + if (space[i][j] > k && !visited[i][j]) { + dfs(i, j, k); + cnt++; + } + } + } + if (cnt > max_cnt) max_cnt = cnt; + fill(visited.begin(), visited.end(), vector(N,0)); + } + + + cout << max_cnt << '\n'; + + return 0; +} \ No newline at end of file