• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

질문있습니다.

21.07.30 11:12 작성 조회수 90

0

#include <iostream>
#include <algorithm>
#include <queue>
#include <stack>

using namespace std;
int arr[30][30];
int xx[8] = {0,1,1,1,0,-1,-1,-1};
int yy[8] = {-1,-1,0,1,1,1,0,-1};

struct LOC{
	int x;
	int y;
	LOC(int a, int b){
		x = a;
		y = b;
	}
};

int main() {
	
	int n,cnt = 0;
	scanf("%d",&n);
	queue<LOC> q;
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= n; j++){
			scanf("%d",&arr[i][j]); // 지도 만들기 
		}
	}
	
	for(int i = 1; i <= n; i++){
		for(int j = 1; j<= n; j++){
			if(arr[i][j] == 1) {
			q.push(LOC(i,j));
			arr[i][j] = 0;
			while(!q.empty()){
				LOC tmp = q.front();
				q.pop();
				int x1 = tmp.x;
				int y1 = tmp.y;
				for(int k = 0; k < 8; k++){
					int x2 = x1 + xx[k];
					int y2 = y2 + yy[k];
					if(arr[x2][y2] == 1){
						q.push(LOC(x2,y2));
						arr[x2][y2] = 0;
					}
				}
			}
			cnt++;
		}
	}
	}
	
	printf("%d",cnt);	

	return 0;
}
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

스스로 코드를 짠 뒤에 선생님의 답과 비교를 했는데 실행하는데 문제는 없으나 계속해서 답이 옳지 못하게 나옵니다. 계속 틀린부분을 찾으려 해봐도 보이지 않아 질문드립니다. 어디서 문제가 발생한거죠?ㅠㅠ

답변 1

답변을 작성해보세요.

1

­이준호님의 프로필

­이준호

2021.07.30

int y2 = y2 + yy[k];
//int y2 = y1 + yy[k];

위 코드에서 오타가 나신 것 같습니다.

김혁수님의 프로필

김혁수

질문자

2021.07.30

감사합니다ㅠㅠ

저 말고 다른분이 봐야 안보이던게 보이더라구요ㅠㅠㅠ 감사합니다!