1012번 - 유기농 배추
제가 컴파일 했을때는 답이 잘 나오는데 제출하면 틀렸다고 나오네요.
혹시, 제가 생각하지 못한 오류가 있을까요?
고수님들 도와주세요 !
#include #include #include using namespace std; int arr[50][50]; int visit[50][50]; int dx[4] = {0, 0, -1, 1}; int dy[4] = {1, -1 ,0 ,0}; int row, col; vector answer; void dfs(int r, int c) { if (visit[r][c]) return; else visit[r][c] = true; int next_r, next_c; for (int i = 0; i < 4; i++) { next_r = r + dx[i]; next_c = c + dy[i]; if (next_r >= 0 && next_r < row && next_c > 0 && next_c < col) { if (arr[next_r][next_c] == true && visit[next_r][next_c] == false) { dfs(next_r, next_c); } } } } int main() { int T, bachu; int c, r; int cnt = 0; cin >> T; for (int tc = 0; tc < T; tc++) { cin >> col >> row >> bachu; memset(arr, 0, sizeof(int) * col); memset(visit, 0, sizeof(int) * col); cnt = 0; for (int reset = 0; reset < row; reset++) { memset(arr[reset], 0, sizeof(int) * row); memset(visit[reset], 0, sizeof(int) * row); } for (int i = 0; i < bachu; i++) { cin >> c >> r; arr[r][c] = 1; } for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { if (arr[i][j] == true && visit[i][j] == false) { ++cnt; dfs(i, j); } } } answer.push_back(cnt); } for (int i = 0; i < answer.size(); i++) cout << answer[i] << endl; return 0; }
바로 아래에 코드 올리는 칸을 놔두고, 굳이 본문에 올리셔서 보기 힘들게 만들지 않으셔도 됩니다.
댓글을 작성하려면 로그인해야 합니다.
lsk4393 4년 전
제가 컴파일 했을때는 답이 잘 나오는데 제출하면 틀렸다고 나오네요.
혹시, 제가 생각하지 못한 오류가 있을까요?
고수님들 도와주세요 !