백준 유기농 배추(1012) C++ 풀이
알고리즘 영역 그래프 이론 그래프 탐색 너비 우선 탐색 깊이 우선 탐색 문제 해결 아이디어 DFS를 이용하여 붙여있는 1의 개수를 세워 출력하면 됩니다. 위의 사진은 총 5마리의 배추휜지렁이가 필요합니다. 코드 #include using namespace std; int t, m, n, k, cnt = 0; int arr[51][51] = { 0, }; // 상하좌우 세팅 int dirX[] = { -1,1,0,0 }; int dirY[] = { 0,0,-1,1 }; void dfs(int y, int x) { // 0으로 바꾸기(방문처리) arr[y][x] = 0; // 상하좌우 탐색 for (int i = 0; i < 4; i++) { int _y = dirY[i] + y; int _x = dirX[..
백준 미로탐색(2178) C++ 풀이
알고리즘 영역 그래프 이론 그래프 탐색 너비 우선 탐색 문제 해결 아이디어 (0,0)부터 시작하여 BFS를 이용하여 전 거리에 +를 하여 도착지점까지 가면 된다. BFS: 가중치가 같으면 최단 거리를 찾을 수 있다. 코드 #include #include using namespace std; int n, m; int arr[101][101]; //배열 int dist[101][101]; //거리 // 상하좌우 세팅 int dirX[] = { -1,1,0,0 }; int dirY[] = { 0,0,-1,1 }; void bfs(int y, int x) { queue q; //(y,x) q.push(make_pair(y, x)); arr[y][x] = 0; // 방문 처리 dist[y][x] = 1; //거리..
백준 말이 되고픈 원숭이(1600) C++ 풀이
알고리즘 분류 그래프 이론 그래프 탐색 너비 우선 탐색(BFS) 문제 해결 아이디어 BFS를 이용하여 K의 값이 0보다 크면 현 위치에서 말의 움직임으로 갈 수 있는 곳을 체크하여 Queue에 넣는다. 그 다음 상하좌우로 갈 수 있는 곳을 체크 한 후 Queue에 넣어, 최종적으로 도착지점에 도달하면 Cost를 출력한다. 코드 #include #include using namespace std; int k; int map[201][201]; bool visited[201][201][31]; int w, h; // 상하좌우 움직임 int dirX[4] = { -1,1,0,0 }; int dirY[4] = { 0,0,-1,1 }; // 말의 움직임 int horseX[8] = { -1,-1,1,1,-2,-2..