해결된 질문
작성
·
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];
감사합니다.