0과 1로 된 n x n의 2차원 공간(변수 input)에서

0,0부터 1로연결된 영역을 탐색하는 bfs 함수 짜봤음


void bfs(const vector<vector<int>>& input) {

const vector<int> dx = { -1,0,1,0 };

const vector<int> dy = { 0,1,0,-1 };


vector<vector<int>> visited(n, vector<int>(n));

queue<pair<int, int>> q;

visited[0][0] = 1;

q.emplace(0, 0);


while (!q.empty()) {

int x_target = q.front().first;

int y_target = q.front().second;

q.pop();

for (int i = 0; i < 4; i++) {

int x = x_target + dx[i];

int y = y_target + dy[i];

if (x < 0 || y < 0 || x >= n || y >= n || visited[x][y] || !input[x][y]) continue;

visited[x][y] = 1;

q.emplace(x, y);

}

}

}



보통 어떤식으로 짜야 되는지 잘 모르겠어

내가 하는 방식이 주로 많이 쓰이는 방식이랑 동떨어졌다던지

이부분은 좀 거슬린다던지하는 부분 알려주면 고쳐볼게

도와줘 ㅠ