개발자 톡
연습문제 톡
장애물 인식 프로그램
장애물인식프로그램 문제
- 등록일
- 2023-07-30 14:49:06
- 조회수
- 548
- 작성자
- tndud250
#include <stdio.h>
int visited[26][26]; // 방문 여부 체크
int map[26][26];
int numb=0;
int num[700]={0,};
int as=0;
int DFS(int row,int col, int n){
for(int i=-1; i<=1; i++){
for (int j=-1; j<=1; j++)
{
if((map[row+i][col+j] == 1 )&& (visited[row+i][col+j] == 0) &&(1<=row+i &&row+i<=n )&&(1<=col+j &&col+j<=n) ){
visited[row+i][col+j] = 1;
numb++ ;
DFS(row+i, col+j,n);
}
}
}
}
int main(void)
{
int M =0;
int k =0;
int temp=0;
scanf("%d", &M);
for (int i =1; i<=M ;i++)
{
for (int j=1 ; j<=M ;j++)
{
scanf("%1d",&map[i][j] );
}
}
for (int i =1; i<=M ;i++)
{
for (int j=1 ; j<=M ;j++)
{
numb = 0 ;
DFS(i, j,M);
if (numb >= 1)
{
num[k] = numb ;
k++;
as++;
}
}
}
for (int i = 0; i < k; i++) {
for (int j = 0; j < (k-1 ) - i; j++) {
if (num[j] > num[j + 1]) { // 버블 정렬 사용
temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
}
}
printf("%d",as );
printf("\n" );
for (int i = 0; i < k; i++)
{
printf("%d",num[i] );
printf("\n" );
}
return 0;
}
================================ 테스트 결과-=================================================
반례부탁드립니다. 감사합니다.
1 | TC1 | 정답 | 5.0ms | 0.69mb |
2 | TC10 | 오답 | 3.0ms | 0.91mb |
3 | TC2 | 정답 | 3.0ms | 1.09mb |
4 | TC3 | 오답 | 3.0ms | 0.85mb |
5 | TC4 | 정답 | 3.0ms | 0.85mb |
6 | TC5 | 정답 | 3.0ms | 0.85mb |
7 | TC6 | 오답 | 3.0ms | 0.84mb |
8 | TC7 | 오답 | 3.0ms | 0.84mb |
9 | TC8 | 오답 | 3.0ms | 0.97mb |
10 | TC9 | 오답 | 3.0ms | 0.86mb |
#장애물_인식_프로그램
#c_언어