인프런 커뮤니티 질문&답변

JJjy님의 프로필 이미지
JJjy

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-C 2468번 문제 왜 틀렸는지 모르겠어요

해결된 질문

작성

·

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점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

 

JJjy님의 프로필 이미지
JJjy

작성한 질문수

질문하기