[BOJ]16954번: 움직이는 미로 탈출 (c++)
https://www.acmicpc.net/problem/16954 16954번: 움직이는 미로 탈출 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 www.acmicpc.net bfs + 같은 시간대에 같은 지점을 방문했는지 bool배열 체크 #include #include #include using namespace std; const int N = 8; char map[N][N + 1]; bool visit[N][N][N]; int dr_x[] = {0, 0, -1, -1, -1, 0, 1, 1, 1}; int dr_y[] = {0, 1, 1, 0, -1,..
2020. 6. 15.
[BOJ]16933번: 벽 부수고 이동하기 3 (c++)
https://www.acmicpc.net/problem/16933 16933번: 벽 부수고 이동하기 3 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net left : 벽을 부술 수 있는 개수 bfs + map[x][y]에 도착했을 때의 left 값을 기록하며 비교 + time 기준으로 분기 #include #include #include using namespace std; struct pos { int x, y; }; struct info { pos p; int left, dist, time; }; int N,..
2020. 6. 15.
[BOJ]14442번: 벽 부수고 이동하기 2 (c++)
https://www.acmicpc.net/problem/14442 14442번: 벽 부수고 이동하기 2 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net left : 벽을 부술 수 있는 개수 bfs + map[x][y]에 도착했을 때의 left 값을 기록하며 비교 #include #include #include using namespace std; struct pos { int x, y; }; struct info { pos p; int left, dist; }; int N, M, K; const int MAX ..
2020. 6. 15.
[BOJ]16946번: 벽 부수고 이동하기 4 (c++)
https://www.acmicpc.net/problem/16946 16946번: 벽 부수고 이동하기 4 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 한 칸에서 다른 칸으로 이동하려면, 두 칸이 인접해야 한다. 두 칸이 � www.acmicpc.net bfs + 인접 빈칸 영역을 그룹화하여, 그 개수를 따로 저장하기 #include #include #include #include using namespace std; struct pos { int x, y; }; int N, M; int dr_x[] = { 0, 1, 0, -1 }; int dr_y[] = { 1, 0, -1, 0 }; const int MAX = 100..
2020. 6. 15.