BOJ 4963 섬의 개수
- DFS(x,y,cnt)로 넘겼을 때 0ms - BFS(x,y,cnt)로 넘겼을 때 4ms - BFS(x,y)로 넘겼을 때 0ms - w, h의 위치를 잘 보고 입력 받아야 한다. https://www.acmicpc.net/problem/4963 * DFS 풀이 #include using namespace std; int map[52][52]; int visited[52][52]; int w,h,cnt; int dx[8]={-1,0,1,-1,1,-1,0,1}; int dy[8]={1,1,1,0,0,-1,-1,-1}; void dfs(int x, int y, int cnt){ visited[x][y]=cnt; for(int i=0; i=0 && ny>=0 && nx
BOJ 2667 단지번호붙이기
- 큐를 이용하여 BFS 탐색하는 기본 문제 - 두번째 풀 때는 단지 내부에 있는 집의 개수를 세기 위해 vector를 이용하려고 했는데 잘 안됐다. 다음 번에는 벡터로 풀어봐야겠다. - DFS 로도 풀어봐야겠다! https://www.acmicpc.net/problem/2667 #include #include #include #include using namespace std; int n, cnt; int map[26][26]; int visited[26][26]; int ans[26*26]; int dx[4]={-1,0,0,1}; int dy[4]={0,-1,1,0}; void bfs(int x, int y, int cnt){ queue q; q.push(make_pair(x,y)); visited[..
BOJ 2583 영역 구하기 DFS
- Y 좌표가 뒤집어져 있어서 input 할 때 헷갈렸다. - DFS, recursion으로 해결 - 영역 갯수, 영역 크기 모두 구해야 한다. https://www.acmicpc.net/problem/2583 #include #include using namespace std; int board[110][110]; int visited[110][110]; int ans[110*110]; int dx[4]={-1,0,0,1}; int dy[4]={0,-1,1,0}; int m, n, k; void dfs(int x, int y, int cnt){ visited[x][y]=cnt; //영역번호. for(int i=0; i=0 && nx=0 && ny