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

김규현님의 프로필 이미지
김규현

작성한 질문수

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

3-j 질문 있습니다

해결된 질문

작성

·

288

0

자꾸 컴파일 에러가 나는데 어디가 문제인지 모르겠습니다 ㅜ

http://boj.kr/b4933bac5f0d4f0292717ee00279844a

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 규현님 ㅎㅎ

일단.

		if(a[x2-1][y2-1] == '0') break;
		fill(&visited[0][0], &visited[0][0] + 305 * 305, 0);
		dfs(x1-1, y1-1);

X, Y로 넘기고 있는데 로직을 보면 y, x로 처리를 하고 있지 않나요?

 

또한, 로직 자체가 비효율적입니다. 플루드필을 사용하지 않은 터라 계속해서 X1, Y1에서 탐색을 계속해서 이어가야 하며, 맵전체를 탐색해나가며 100 인지를 확인하는 로직이 추가로 들고 있습니다.

		dfs(x1-1, y1-1);
		for(int i=0;i<n;i++){
			for(int j=0;j<m;j++){
				if(visited[i][j] == 100){
					a[i][j] = '0';
				}
			}
		}

 

해당 부분만 다시 구축하시면 될 거 같습니다.

 

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

김규현님의 프로필 이미지
김규현
질문자

감사합니다 ㅎㅎ

김규현님의 프로필 이미지
김규현

작성한 질문수

질문하기