[BOJ]16948번: 데스 나이트 (c++)
https://www.acmicpc.net/problem/16948 16948번: 데스 나이트 게임을 좋아하는 큐브러버는 체스에서 사용할 새로운 말 "데스 나이트"를 만들었다. 데스 나이트가 있는 곳이 (r, c)라면, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2), (r+2, c-1), (r+2, c+1)로 이동할 수 있다. 크 www.acmicpc.net bfs #include #include #include #include using namespace std; int dr_x[] = {-2, -2, 0, 0, 2, 2}; int dr_y[] = {-1, 1, -2, 2, -1, 1}; struct pos { int x, y; }; int bfs(vector &board..
2020. 6. 13.
[BOJ]12100번: 2048 (Easy) (c++)
https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net dfs로 4방향 탐색하며 보드 기울이기 #include #include #include using namespace std; const int LIMIT = 5; int dr_x[] = {0, 1, 0, -1}; int dr_y[] = {1, 0, -1, 0}; enum {RIGHT, DOWN, LEFT, UP}; int N; struct block { int val;..
2020. 6. 13.
[BOJ] 13460번: 구슬 탈출 2 (c++)
https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net dfs로 최소 이동 횟수 구하기, 비트마스크로 이동가능 방향 바꾸기 #include #include #include using namespace std; int dr_x[] = {0, 1, 0, -1}; int dr_y[] = {1, 0, -1, 0}; unsigned int leftright = (1 N >> M; vector board(N); ..
2020. 6. 13.