본문 바로가기

Algorithm/BOJ211

[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]16928번: 뱀과 사다리 게임 (c++) https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net bfs #include #include #include #include using namespace std; const int MAX = 100; int bfs(vector &SnL, vector &min_cnt) { // 1부터 시작 queue q; q.push(1); min_cnt[1] = 0; while (!q.empty()) { int now .. 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.