PS/깊이 우선 탐색, 너비 우선 탐색[DFS, BFS] 34

백준 2178 미로 탐색(c++)

https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net #include #include #include #include #define max 101 using namespace std; queueq; int dir[4][2] = {{-1,0},{1,0},{0,-1},{0,1}}; int board[max][max]; int n,m; string s; void bfs(int x,int y){ bool visited[max][max] = {false}; visited[x][y]=true..

BFS

BFS(Breadth First Search) 그래프 순회 방법 중 하나(너비 우선 탐색) 시작 노드에서 인접노드를 방문하고, 방문한 노드에서 인접 노드를 모두 방문하는 것을 반복한다. Queue(큐)를 이용한 BFS 풀이 입력 5(노드의 수) 6(간선의 수) 0 1 0 2 1 3 1 4 2 4 3 4 (간선이 존재하는 노드의 쌍 입력) 출력 0 1 2 3 4 #include #include #include #include using namespace std; #define max 10 int n, e; int graph[max][max]; void bfs(int node){ bool visited[max]= {false}; queuemyqueue; visited[node]=true; myqueue.pu..

백준 2667 단지번호붙이기(c++)

https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net (스택 쓰지 않고 풀기) #include #include #include #include using namespace std; int mov[4][2] = {{-1,0},{1,0},{0,1},{0,-1}}; bool check[26][26]; int Board[26][26]; vectorrooms; int cnt=0; int n; string s; void dfs(int x,int y) { for(..

DFS

DFS(Depth First Search) 그래프 순회 방법 중 하나(깊이 우선 탐색) 시작 노드에서 깊이가 커지는 방향으로 탐색을 진행하여 더 이상 방문할 인접 노드가 없는 경우 이전 노드가 돌아가서, 다시 깊이 우선 탐색을 반복하게 됨. 재귀 호출을 통해 구현 1. 입력 5(노드의 개수) 6(간선의 개수) 노드의 쌍 0 1 0 2 1 3 1 4 2 4 3 4 (각 쌍들 사이에 간선이 존재) 출력 0 1 3 4 2 #include #include using namespace std; #define max 10 int n, e; int graph[max][max]; bool visited[max]; void dfs(int node) { visited[node] = true; coutu>>v; graph[..