5648. 원자 소멸 시뮬레이션
typedef struct { int y, x, dir, k; }info; static int N; static int board[4096][4096]; static int visit[4096][4096]; static int collision[4096][4096]; static int d[4][2] = { 1, 0, -1, 0, 0, -1, 0, 1 }; static vector vec; static int solution() { int x, y, dir, K, ret = 0; scanf("%d", &N); for (int cnt = 0; cnt < N; cnt++) { scanf("%d %d %d %d", &x, &y, &dir, &K); x += 1000; y += 1000; x *= 2; y *=..
1953. 탈주범 검거
static int N, M, R, C, L; static int board[50][50]; static bool visit[50][50]; static queue q; static int d[4][2] = { -1, 0, //up 1, 0, //down 0, -1, //left 0, 1 //right }; static int types[4][4] = { 1, 2, 4, 7, //위로갈 수 있는 type 1, 2, 5, 6, //아래로 갈 수 있는 type 1, 3, 6, 7, //좌로 갈 수 있는 type 1, 3, 4, 5 //우로 갈 수 있는 type }; static int avail[4][4] = { 1, 2, 5, 6, //위로 갈 때 필요한 type 1, 2, 4, 7, //아래로 갈 때 필..
2105. 디저트 카페
static int N; static int board[20][20]; static int d[4][2] = { 1, 1, 1, -1, -1, -1, -1, 1 }; static bool out_of_bound(int y, int x) { if (y = N) return true; if (x = N) return true; return false; } static int travel(int y, int x, int j, int k) { int visit[101], ret = 0; int lens[] = { j, k, j, k }; //d의 방향 순서와 동일하게 memset(visit, 0, sizeof(visit)); for (int dir = 0; dir < 4; d..
2382. 미생물 격리
static int N, M, K; static int board[2][100][100]; //현재, 다음, 방향 static int direction[2][100][100]; static int d[5][2] = { 0, 0, //X -1, 0, //상 1, 0, //하 0, -1, //좌 0, 1 //우 }; static int changed[] = { 0, 2, 1, 4, 3 }; static bool out_of_bound(int y, int x) { if (y = N - 1) return true; if (x = N - 1) return true; return false; } static int solution() { int y, x, n, dir, turn ..
1949. 등산로 조성
//2차원 배열 문제 풀이 시 //항상 d[4][2], visit, out_of_bound()는 정의하고 시작할 것. //out_of_bound -> visit -> ... static int N, K; static int board[8][8]; static int ans; static bool visit[8][8]; static int d[4][2] = { -1, 0, 1, 0, 0, -1, 0, 1 }; static bool out_of_bound(int y, int x) { if (y = N) return true; if (x = N) return true; return false; } static void __solution(int y, int x, int le..