본문 바로가기

알고리즘/완전 탐색14

백준 7569번 : 토마토 문제 링크 : www.acmicpc.net/problem/7569 내 풀이(2021.1.25.) : BFS #include #include #include using namespace std; int N, M, H; int map[100][100][100]; // [z][y][x] = [H][N][M] int dz[6] = {1,-1,0,0,0,0}; int dy[6] = {0,0,-1,1,0,0}; int dx[6] = {0,0,0,0,-1,1}; queue q; bool check() { for (int i = 0; i < H; i++) { for (int j = 0; j < N; j++) { for (int k = 0; k < M; k++) { if (map[i][j][k] == 0) return .. 2021. 1. 25.
백준 2178번 : 미로 탐색 문제 링크 : www.acmicpc.net/problem/2178 풀이에 참고한 링크 : www.acmicpc.net/board/view/12343 내 풀이(2021.1.24) : #include #include #include using namespace std; int map[101][101]; int N, M; int dy[4] = { -1,0,1,0 }; int dx[4] = { 0,-1,0,1 }; void show() { for (int i = 1; i 2021. 1. 24.
백준 2667번 : 단지번호붙이기 문제 링크 : www.acmicpc.net/problem/2667 내 풀이(2021.1.13.) : BFS #include #include #include #include using namespace std; int N; vector list; queue q; int map[25][25]; // [y][x] int visit[25][25]; // [y][x] int dy[4] = { 0, -1, 0, 1 }; int dx[4] = { -1, 0, 1, 0 }; void bfs(int y, int x) { int cnt = 0; visit[y][x] = 1; q.push(make_pair(y, x)); while (!q.empty()) { int y = q.front().first; int x = q.fr.. 2021. 1. 13.
백준 15654번 : N과 M (5) 문제 링크 : www.acmicpc.net/problem/15654 내 풀이(2021.1.5.) : #include #include #include using namespace std; vector list; bool visit[8]; int N, M; void search(vector& v) { // 해를 찾음 if (v.size() == M) { for (int i = 0; i < v.size(); i++) { printf("%d ", v[i]); } printf("\n"); return; } // 탐색 for (int i = 0; i < list.size(); i++) { if (visit[i] == true) continue; visit[i] = true; v.push_back(list[i]); .. 2021. 1. 5.