#7576 토마토
문제는 위와같다(골드 5). 배운게 많았던 문제이다. dfs,bfs에대한 내 고정관념, 편협한 시각, 선입견, 아둔한 생각, 우둔한 사고, 굳어있는 코드 등을 깰 수 있었다. (ㅋㅋ) #include #include #include using namespace std; int m,n,big; int map[1001][1001]; //토마토 정보 입력 배열 int visited[1001][1001]; //방문기록 int date[1001][1001]; //최단 날짜 int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; queue q; void bfs(){ //q.push(make_pair(y,x)); //visited[x][y]=1; while(!q.empty()){ int y=q.f..
#4963 섬의 개수
문제는 위와 같다(실버 2). 연결요소문제와 비슷한 종류의 문제이다. 구현은 어렵지 않았는데, 행과 열을 헷갈려서 애를 좀 먹었다.ㅠㅜ #include #include using namespace std; int w,h; int number; //섬의 개수 int map[51][51]; int visited[51][51]; int dx[]={0,1,1,1,0,-1,-1,-1}; int dy[]={1,1,0,-1,-1,-1,0,1}; void dfs(int y,int x){ visited[y][x]=1; for(int k=0;k
#1012 유기농 배추
문제는 위와 같다. (실버2) 쉬운 dfs/bfs문제였다. 연결요소 문제랑 매우 흡사한 문제이다. 개인적으로 dfs보다 bfs가 더좋은것 같은데 사람들은 dfs를 더많이 쓰는듯; #include #include #include #include #include using namespace std; queue q; int M,N,K; //가로 세로 길이, 배추 개수 int check[51][51]; //방문했는지 확인하는 int a[51][51]; //인접행렬 int dx[] = {0,-1,0,1}; //한칸씩 움직일때 필요 int dy[] = {1,0,-1,0}; void bfs(int x,int y){ q.push(make_pair(x,y)); check[x][y] = 1; while(!q.empty()..