해결된 질문
작성
·
246
0
안녕하세요 강사님, 2468번 안전 영역 문제를 풀었고 예제도 다 맞는데 제출하면 틀렸다고 뜹니다. 풀이 강의도 들었는데 어디에서 틀렸는지 모르겠어요.
#include<bits/stdc++.h>
using namespace std;
int N,h,ret,H,maxx;
int a[100][100],visited[100][100];
int dy[] = {-1,0,1,0};
int dx[] = {0,1,0,-1};
void DFS(int y, int x)
{
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) continue;
if(!visited[ny][nx] && a[ny][nx]>H)
DFS(ny,nx);
}
return;
}
int main()
{
cin>>N;
for(int i=0; i<N; i++)
{
for(int j=0; j<N; j++)
{
cin>>h;
a[i][j]=h;
}
}
for(H=0; H<=N; H++)
{
fill(&visited[0][0], &visited[0][0]+100*100, 0);
ret = 0;
for(int i=0; i<N; i++)
{
for(int j=0; j<N; j++)
{
if(a[i][j]>H && !visited[i][j])
{
DFS(i,j);
ret++;
}
}
}
if(maxx < ret) maxx = ret;
}
cout<<maxx;
}
답변 1
1
안녕하세요 J님
for(H=0; H<=N; H++)
{
이부분이요 N까지가 아니라. 100까지 탐색해나가야 하는 거 아닐까요?
그리고 다음부터는 0주차 : 질문하는 법 보시고 질문 올려주세요. ㅎㅎ
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.