본문 바로가기

알고리즘/DFS30

1012 유기농 배추 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778#include #include #include using namespace std; int house[55][55] = { 0 };int val, n; void find(int i, int j); int main() { int t; scanf("%d", &t); while (t--) { int m, n, k; scanf("%d %d %d", &m, &n, &k); priority_queue q; for (int i = 1; i 2019. 7. 29.
2667 단지번호 붙이기 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#include #include using namespace std; int house[30][30] = { 0 };int val, n;priority_queue q; void find(int i, int j); int main() { scanf("%d", &n); getchar(); for (int i = 1; i 2019. 7. 29.
1260 DFS와 BFS 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#include #include using namespace std; int adj[1005][1005] = { 0 };int chk1[1005] = { 0 };int chk2[1005] = { 0 };int n, m, v; void DFS(int v);void BFS(int v); int main() { scanf("%d %d %d", &n, &m, &v); for (int i = 1; i 2019. 7. 29.
(잘못된풀이) 누가 더 클까 더블릿 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758#include #include using namespace std;vector par;int tall, small, flag = 0; void dfs(int x) { if (x == tall) { flag = 1; return; } if (par[x].size() == 0) return; for (int i = 0; i 2019. 3. 1.
달팽이 더블릿 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146#include #include using namespace std; int arr[500][500] = { 0 };int.. 2019. 2. 28.
(복습 필요) orders 더블릿 12345678910111213141516171819202122232425262728293031323334#include #include using namespace std; char input[205] = { 0 };char output[205] = { 0 };char alpha[30] = { 0 };int len; void dfs(int depth) { if (depth == len) { printf("%s\n", output); } for (int i = 0; i 0) { alpha[i]--; output[depth] = (char)(i + 'a'); dfs(depth + 1); alpha[i]++; } }} int main() { scanf("%s", input); len = strlen(inpu.. 2019. 2. 26.