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

toyboy0113님의 프로필 이미지
toyboy0113

작성한 질문수

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

2주차 개념 #10. 너비우선탐색(BFS, Breadth First Search)

출력 관련해서 질문드려요~

해결된 질문

작성

·

250

1


#include <bits/stdc++.h>
using namespace std;


int n, m, y, x, toX, toY, nx, ny;
int arr[104][104];
int visited[104][104];
queue<pair<int,int>> q;

int dx[4] = {0,1,0,-1};
int dy[4] = {-1,0,1,0};

int main() {
      cin.tie(NULL);
      cout.tie(NULL);

      cin >> n >> m;
      cin >> x >> y;
      cin >> toX >> toY;

      for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                  cin >> arr[i][j];
            }
      }
    
      visited[x][y] = 1;
      q.push({x, y});


      while (q.size())
      {
            tie(x, y) = q.front(); 
            cout << x << y << "\n";
            q.pop();

            for (int i = 0; i < 4; i++) {
                  nx = x + dx[i];
                  ny = y + dy[i];
                  if (nx < 0 || ny < 0 || nx >= n || ny >= m) continue;
                  if (arr[nx][ny] == 1 && !visited[nx][ny]) {
                        visited[nx][ny] = visited[x][y] +1;
                        q.push({nx,ny});
                  }
            }
      }

      printf("%d\n", visited[toX][toY]);
      cout << visited[toX,toY];

      return 0;
}

안녕하세요 printf로 출력을 했을때는 9가 잘 뜨는데
왜 cout을 하면 주소값(0x415fc0)이 뜨는지 이유를 알 수 있을까요?

답변 1

0

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

안녕하세요 toy님 ㅎㅎ

이게 아니라

      cout << visited[toX,toY];

이렇게 되어야 하는게 아닐까요?

      cout << visited[toX][toY];

 

 

감사합니다.

toyboy0113님의 프로필 이미지
toyboy0113

작성한 질문수

질문하기