top of page

소스 코드 제출

공개·회원 77명

20260412

//#include <stdio.h>

//

//int map[100][100] = {};

//int queue[2][100] = {};

//int rear = 0, front = 0;

//

//void pop()

//{

// queue[0][rear] = 0;

// queue[1][rear] = 0;

// rear++;

//}

//

//void push(int x, int y)

//{

// queue[0][front] = x;

// queue[1][front] = y;

// front++;

//}

//

//

//int main()

//{

// int N = 0, M = 0, i = 0;

// int currX, currY;

// scanf("%d %d", &N, &M);

// for (int i = 1; i <= N; i++) {

// for (int j = 1; j <= M; j++) {

// scanf("%1d", &map[i][j]);

// }

// }

//

// currX = 1;

// currY = 1;

// push(currX, currY);

// for (; ;i++) {

// pop();

// map[currX][currY] = 0;

// if (map[N][M] == 0) {

// break;

// }

// if (map[currX+1][currY] == 1) {

// map[currX+1][currY] == 0;

// push(currX+1, currY);

// }

// if (map[currX][currY+1] == 1) {

// map[currX][currY+1] == 0;

// push(currX, currY+1);

// }

// if (map[currX-1][currY] == 1) {

// map[currX-1][currY] == 0;

// push(currX-1, currY);

// }

// if (map[currX][currY-1] == 1) {

// map[currX][currY-1] == 0;

// push(currX, currY-1);

// }

//

// currX = queue[0][rear];

// currY = queue[1][rear];

//

//

// }

// printf("%d", i);

//}



#include <stdio.h>


int map[100][100] = {};

int queue[2][1000] = {};

int rear = 0, front = 0;


void push(int x, int y)

{

queue[0][front] = x;

queue[1][front] = y;

front++;

}



void pop()

{

queue[0][rear] = 0;

queue[1][rear] = 0;

rear++;

}


int bfs(int x, int y)

{

map[x][y] = 0; //방문 했다고 표시

push(x, y); //큐에 push

for (int i = 0; ;i++) {

pop();

if (map[x+1][y] == 1) {

map[x+1][y] = 0;

push(x+1, y);

}

if (map[x][y+1] == 1) {

map[x][y+1] = 0;

push(x, y+1);

}

if (map[x-1][y] == 1) {

map[x-1][y] = 0;

push(x-1, y);

}

if (map[x][y-1] == 1) {

map[x][y-1] = 0;

push(x-1, y);

}

x = queue[0][rear];

y = queue[1][rear];

if (rear == front) {

return i;

}

}

}


int main()

{

int N = 0, M = 0;

scanf("%d %d", &N, &M);

for (int i = 0; i < N; i++) {

for (int j = 0; j < M; j++) {

scanf("%1d", &map[i][j]);

}

}

printf("%d", bfs(1, 1));

}

7회 조회
주소 : 경기도 용인시 광교중앙로 302 블루 스퀘어 602호
연락처 : 031) 216 - 1546 ,     031) 215 - 1546
사업자등록번호 : 465-92-00916
​학원 등록 제 4603호
bottom of page