728x90
반응형

알고리즘/BFS & DFS 8

[백준/BFS&DFS/C++] 1012번 유기농 배추

문제는 여기! #include using namespace std; int T, M, N, K; int MAP[51][51]; bool isVisited[51][51]; int dx[] = {-1, 1, 0, 0}; int dy[] = {0, 0, -1, 1}; void bfs(int a, int b){ queue q; q.push({a,b}); while(!q.empty()){ int x = q.front().first; int y = q.front().second; q.pop(); isVisited[x][y] = true; for(int i=0; i K; //가로길이, 세로길이, 배추개수 for(int i=0; i> x >> y; MAP[x][y] = 1; } solve(); clearMap(); }..

[백준/BFS&DFS/C++] 9205번 맥주 마시면서 걸어가기

문제는 여기! #include using namespace std; int t, n; struct Point{ int x; int y; }; Point house, festival; Point cvs[101]; bool isvisited[101]; bool solve(){ queue q; q.push({house.x, house.y}); while(!q.empty()){ int x = q.front().first; int y = q.front().second; q.pop(); if(abs(x-festival.x) + abs(y-festival.y) n; cin >> house.x >> house.y; for(int c=0; c> cvs[c].x >> cvs[c].y; } cin >> festival.x ..

[백준/구현/BFS&DFS/C++] 2573번 빙산

https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 문제 해결 방법 수도코드로 표현하면 아래처럼 표현할 수 있다. while(1){ if(빙하의 개수==0) break; 빙하 덩어리 수 세기(); if(빙하 덩어리수 > 1) break; else 빙하 녹이기(); } 그리고 크게 구현할 것은 아래 3가지 이다. 1. 빙하마다 바다에 둘러싸인 면의 수 구하기 2. 한번에 녹이기 3. 덩어리 수 세기 우선 입력받을 때 빙하는 queue에 넣어주었..

[백준/BFS&DFS/C++] 2468번 안전 영역

https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 전체 코드 #include using namespace std; int N; int MAP[101][101]; int minValue = 2e9, maxValue = 0; bool isVisited[101][101]; int dx[] = {-1, 0, 1, 0}; int dy[] = {0, 1, 0, -1}; void clearVisit(){ for(int i=0; i N; for(int i=0; i x..

[백준/BFS/C++] 2606번 바이러스

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net #include using namespace std; int n, m; vector v[101]; bool isVisited[101]; int result = 0; void findVirus(){ queue q; q.push(1); isVisited[1] = true; while(!q.empty()){ int front = q.front(); q.pop(); result++; for(int i=0; i..

728x90
반응형