개발자 톡
연습문제 톡
장애물 인식 프로그램
장애물 인식 프로그램
- 등록일
- 2023-02-20 16:51:30
- 조회수
- 797
- 작성자
- moon023
Visual studio에서 디버깅 하면 맞는것 같은데 소프티어에서는 오답으로 나오네요. 어느 부분이 문제일까요..?
#include
#include
#include
using namespace std;
static int n, cnt=0;
static vector> Arry;
static vector> Visited;
static vector CountList;
static int dx[] = {0, 0, -1, 1};
static int dy[] = {-1, 1, 0, 0};
void DFS(int x, int y)
{
for (int i = 0 ; i < 4 ; i++)
{
int nx = x + dx[i];
int ny = y + dy[i];
if( nx < 0 || ny< 0 || nx >= n || ny >= n || Arry[nx][ny] == 0 ) continue;
if( Visited[nx][ny]) continue;
Visited[nx][ny] = true;
cnt++;
DFS(nx, ny);
}
}
int main(void)
{
cin >> n;
Arry = vector>(n, vector(n, 0));
Visited = vector>(n, vector(n,false));
// 배열 입력
for (int i = 0 ; i < n ; i++){
for (int j = 0 ; j < n ; j++){
cin >> Arry[i][j];
}
}
// 탐색
for (int i = 0 ; i < n ; i++){
for (int j = 0 ; j < n ; j++){
if(Visited[i][j]|| Arry[i][j] == 0 ) continue;
Visited[i][j] = true;
cnt = 1;
DFS(i, j);
CountList.push_back(cnt);
}
}
cout << CountList.size() << "\n";
for (int i = 0; i < CountList.size() ; i++ )
{
cout << CountList[i] << "\n";
}
return 0;
}
#장애물_인식_프로그램
#c++