C언어/문제풀다 하나씩

간단한bfs구현

mcdn 2020. 4. 30. 16:36
반응형

#include <iostream>
using namespace std;
int map[6][6];
struct Node {
	int a;
};
Node queue[20];
int head = 0;
int tail = 1;

int main() {
	for (int i = 0; i < 6;i++) {
		for (int j = 0; j < 6;j++) {
			cin >> map[i][j];
		}
	}
	queue[0] = { 0 };
	while (head != tail) {
		Node now = queue[head];
		if (now.a % 2 == 1) {
			cout << now.a << " ";
		}
		for (int i = 0; i < 6;i++) {
			if (map[now.a][i] == 1) {
				queue[tail++] = { i };
			}
		}
		head++;
	}


	return 0;
}

input

0 1 0 1 1 0

0 0 1 0 0 1

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

output

135

bfs 인것 잊지말자!

마지막에 head++ 안써서 에러 남.

반응형