https://www.acmicpc.net/problem/2606DFS, BFS 어느 것을 사용해도 상관없지만, 필자는 BFS를 이용하였다.#include #include #include #include using namespace std;vector> list;vector visited;int bfs(){ queue que; int answer = 0; visited[1] = true; que.push(1); while (!que.empty()) { int current = que.front(); que.pop(); for (int i = 0; i > N >> M; list = vector>(N + 1); visited = vector(N + 1, false); for (int i = 0; i >..
https://www.acmicpc.net/problem/2444524444번 문제에서 내림차순으로 변경하는 것 말고는 같은 문제이다.#include #include #include #include using namespace std;vector> list;vector visited;int visitedOrder = 1;void dfs(int start){ queue que; visited[start] = visitedOrder++; que.push(start); while (!que.empty()) { int current = que.front(); que.pop(); for (int i = 0; i b;}int main(){ int N, M, R; cin >> N >> M >> R; list ..
https://www.acmicpc.net/problem/24444BFS의 기초를 다질 수 있는 문제이다.#include #include #include #include using namespace std;vector> list;vector visited;int visitedOrder = 1;void dfs(int start){ queue que; visited[start] = visitedOrder++; que.push(start); while (!que.empty()) { int current = que.front(); que.pop(); for (int i = 0; i > N >> M >> R; list = vector>(N + 1); visited = vector(N + 1, 0); for ..
https://www.acmicpc.net/problem/2448024479번 문제와 동일하지만, 내림차순으로 방문한다는 점이 다른 점이다.#include #include #include using namespace std;vector> list;vector visitedOrder;int order = 1;void dfs(int start){ visitedOrder[start] = order; for (int i = 0; i b;}int main(){ int N, M, R = 0; cin >> N >> M >> R; list = vector>(N + 1); visitedOrder = vector(N + 1, 0); for (int i = 0; i > u >> v; list[u].push_back(v)..
https://www.acmicpc.net/problem/24479출력이 노드의 순서대로 출력함과 동시에 방문 순서를 적는 형식이다.#include #include #include using namespace std;vector> list;vector visitedOrder;int order = 1;void dfs(int start){ visitedOrder[start] = order; for (int i = 0; i > N >> M >> R; list = vector>(N + 1); visitedOrder = vector(N + 1, 0); for (int i = 0; i > u >> v; list[u].push_back(v); list[v].push_back(u); } for (int i = 0;..
https://www.acmicpc.net/problem/14889#include #include #include using namespace std;int N;vector> list;vector visited;int answer = INT_MAX;void calculate(){ int startVal = 0; int linkVal = 0; for (int i = 0; i linkVal ? startVal - linkVal : linkVal - startVal); return;}void generateTeam(int num, int idx){ if (num == N / 2) calculate(); for (int i = idx; i > N; list = vector>(N, vector(N, 0))..