[백준] 1326번 폴짝폴짝
·
백준 문제/BFS
문제: 1326번: 폴짝폴짝 //#include #include #include #include #include #include #include #include #include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(0); int n; // 징검다리 개수 cin >> n; vector edges(n + 1); // 0번 인덱스 안 써 vector visits(n + 1); for (int i = 1; i > edges[i]; } int a, b; // a번 징검다리에서 시작해서 b번 징검다리로.. cin >> a >> b; int ans = -1; queu..
[백준] 24445번 알고리즘 수업 - 너비 우선 탐색 2
·
백준 문제/BFS
문제: 24445번: 알고리즘 수업 - 너비 우선 탐색 2 #include using namespace std;vector> graph;vector visits;bool compare(int n1, int n2) { return n1 > n2;}int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m, r; // 정점 수, 간선 수, 시작 정점 cin >> n >> m >> r; graph = vector>(n + 1); // 0번 인덱스 안 써 visits = vector(n + 1); for (int i = 0; i > u >> v; graph[u].push_back(v); gr..
[백준] 14716번 현수막
·
백준 문제/BFS
문제: 14716번: 현수막 #include using namespace std;int cnt = 0;vector> table;vector> visits;int dx[8] = {-1, 0, 1, 0, -1, -1, 1, 1};int dy[8] = {0, -1, 0, 1, -1, 1, -1, 1};int m, n; // 현수막 크기void BFS(int x, int y) { cnt++; queue> nexts; nexts.push({x, y}); visits[x][y] = true; // 방문 표시 while (!nexts.empty()) { pair cur = nexts.front(); nexts.pop(); for (int i=0; i=..
[백준] 2644번 촌수계산
·
백준 문제/BFS
문제: 2644번: 촌수계산 #include using namespace std;vector> graph;vector visits;int main() { ios::sync_with_stdio(false); cin.tie(0); int n; // 전체 사람의 수 cin >> n; int num1, num2; // 촌수 계산 서로 다른 두 사람 번호 cin >> num1 >> num2; int m; // 부모 자식 간 관계의 개수 cin >> m; graph = vector>(n + 1); // 0번 인덱스는 안 쓸 것.. visits = vector(n + 1); for (int i = 0; i > x >> y; graph[x].pus..
[백준] 16948번 데스 나이트
·
백준 문제/BFS
문제: 16948번: 데스 나이트 #include using namespace std;vector> board;vector> visits;int dx[6] = { -2, -2, 0, 0, 2, 2 };int dy[6] = { -1, 1, -2, 2, -1, 1 };int n;int r1, c1, r2, c2;vector> path;void BFS() { queue> nexts; visits[r1][c1] = 1; nexts.push({ r1, c1 }); while (!nexts.empty()) { pair cur = nexts.front(); nexts.pop(); for (int i = 0; i n - 1 || ny n - 1) continue; ..
[백준] 6593번 상범 빌딩
·
백준 문제/BFS
문제: 6593번: 상범 빌딩 //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;vector>> building;vector>> visits;queue> nexts;int l, r, c; // 층 수, 행, 열int time_ = 0;// 동, 서, 남, 북, 상, 하 (총 6방향)int dx[6] = { 1, -1, 0, 0, 0, 0 };int dy[6] = { 0, 0, 1, -1, 0, 0 };int dz[6] = { 0, 0, 0, 0, 1, -1 };..
[백준] 3055번 탈출
·
백준 문제/BFS
문제: 3055번: 탈출 //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;vector> world;vector> visits;queue> waterNexts;queue> hedgehogNexts;int dx[4] = { -1, 0, 1, 0 };int dy[4] = { 0, -1, 0, 1 };int main() { ios::sync_with_stdio(false); cin.tie(0); int r, c; cin >> r >> c; world = ..
[백준] 29634번 Hotel
·
백준 문제/BFS
문제: 29634번: Hotel #include using namespace std;vector> board;vector> visits;int dx[4] = { -1, 0, 1, 0 };int dy[4] = { 0, -1, 0, 1 };int n, m; // 높이, 너비long long BFS(pair start) { long long size = 0; queue> nexts; nexts.push(start); visits[start.first][start.second] = true; while (!nexts.empty()) { pair cur = nexts.front(); nexts.pop(); size++; for (int i = 0; i n - 1 || ny m - 1) continue;..
[백준] 21736번 헌내기는 친구가 필요해
·
백준 문제/BFS
문제: 21736번: 헌내기는 친구가 필요해 #include #include #include using namespace std;vector> visit(600, vector(600));int dx[4] = { 1, 0, -1, 0 };int dy[4] = { 0, 1, 0, -1 };int main() { ios::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; pair startPos; vector> campus(n); for (int i = 0; i (m); string input; cin >> input; for (int j = 0; j > nexts; nexts...
[백준] 13265번 색칠하기
·
백준 문제/BFS
문제: 13265번: 색칠하기 #include #include #include #include #include #include #include #include #include using namespace std;vector> circles;vector colors; // 0: 미색칠, 1: 빨강, 2:파랑bool bfs(int start) { queue nexts; nexts.push(start); colors[start] = 1; // 1번 정점 빨강으로 시작 while (!nexts.empty()) { int cur = nexts.front(); nexts.pop(); for (int next : circles[cur]) { ..