목록생활 (730)
No Rules Rules
드래곤 커브 https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net // woohyeon.kim #include #include using namespace std; int N; int arr[101][101]; int dx[4], dy[4]; int pos_x, pos_y, direction, generation; vector status; void make_dragon(int g) { if (g > generation)r..
사다리 조작 https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net // woohyeon.kim #include using namespace std; struct Position { int x; int y; }; int N, M, H; int arr[31][11]; int result; inline bool check() { for (int iy = 0, check_x, check_y; iy < N; ++iy) { check_x = 0, check_..
감시 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net // woohyeon.kim #include #include #include using namespace std; struct CameraPosition { int x; int y; int type; }; int N, M; int dx[4], dy[4];// 0 : 북, 1 : 동, 2 : 남, 3 : 서 int arr[9][9]; CameraPosition cameras[9]; ..
톱니바퀴 https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net // woohyeon.kim #include #include #include #include #include using namespace std; struct Gear { deque value; }; Gear m_gear[4]; int K; struct MoveInfo { int gear_number;// 1 ~ 4 int turn_direction;// -1 : 반시계, 1 : 시..
주사위 굴리기 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net // woohyeon.kim #include #include using namespace std; int N, M, K; int maps[21][21]; int dx[4], dy[4]; int dice[4][3]; int tmp_dice[4][3]; int cmd[1001]; void turn_dice(const in..
퇴사 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net // woohyeon.kim #include #include using namespace std; struct Work { int day; int money; }; int N; Work works[16]; bool visit[16]; int result; void dfs(int current_day, int total_money) { if (current_day > N) { result = max(result, total_money); return; } auto idx = current_day; for (; idx > N; fo..
2048 (Easy) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net // woohyeon.kim #include #include #include #include using namespace std; int N; int dx[4], dy[4]; int boards[21][21]; int tmp[21][21]; int result; vector directions; void pour(int direction) { if..
구슬 탈출 2 https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net // woohyeon.kim #include #include #include using namespace std; int N, M; int dx[4], dy[4]; bool visit[11][11]; char maps[11][11]; class Marble { public: const bool operator==(const Marbl..
연구소 2 https://www.acmicpc.net/problem/17141 17141번: 연구소 2 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이 www.acmicpc.net // woohyeon.kim #include #include #include #include using namespace std; int N, M; int map[51][51]; int tmp[51][51]; bool visit[51][51]; vector virus_list, all_virus_list; vector result_times; int virus(vector& virus_list)..
연구소 3 https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net // woohyeon.kim #include #include #include #include #include using namespace std; int N, M; int maps[51][51]; int node[51][51]; bool visit[51][51]; vector virus_lists; vector all_virus_lists; int dx[4], dy[4]; vector take_..