본문 바로가기

전체 글

(168)
백준 17779 게리맨더링 2 문제: 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름도 재현시로 변경했다. 이번 선거에서는 최대한 공평하게 선거구를 획정하려고 한다. 재현시는 크기가 N×N인 격자로 나타낼 수 있다. 격자의 각 칸은 구역을 의미하고, r행 c열에 있는 구역은 (r, c)로 나타낼 수 있다. 구역을 다섯 개의 선거구로 나눠야 하고, 각 구역은 다 www.acmicpc.net 코드: #include #include #include #define f(i, n) for(int i = 0 ; i < (n); ++i) #define IN(r, c) (0 map[r][c..
백준 17471 게리맨더링 문제: 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 코드: /* 1. 마을 번호 1부터 시작! */ #include #include #include using namespace std; int N; int pop[10]; vector adj[10]; bool perm[10]; bool side; int sz[2], sum[2]; bool vst[10]; int dif; int ans = 1000; void DFS(int v) { vst[v] = 1; for (auto w : adj[v]) { if (vst[w] || perm[w..
19' 하반기 10월 20일 삼성전자 SW 역량 테스트 후기 9월 상시 역테에 이어 다시 인재개발원에서 시험을 보게되었다. 같은 시험장이지만 분위기는 사뭇 달랐다. 시험 감독관으로 훨씬 더 많은 분들이 나와 계셨고 정식 입사시험이라 그런지 비장한 분위기가 느껴졌다. 모든 것이 9월에 비해 훨씬 체계적으로 돌아갔다. 엘레베이터를 타는 것도 직원 분들의 안내와 감독을 받았고, 안내 받은 시작 시간이 됐는데도 교실에 들어가지 못 했던 9월과 비교하면 시험 진행 과정 역시 모두 체계적이었다. 지난 번 시험을 봤던 교실과 같아서(...) 긴장하지 않고 볼 수 있었던 것 같다. 결과는 1 문제를 풀었다. 맞았으면 좋겠다. 시험을 끝내고 인개원을 나서는데 너무나 익숙한 풍경이어서 직감을 믿고 카톡을 하면서 걸어가다가 결국에는 이상한 길로 접어들어 한참을 돌아가야했다. 최단거리..
큐빙 /* 1 */ #include #include #include #define f(i, n) for(int i = 0; i < (n); ++i) using namespace std; // original char cb[2][6][3][3]; bool sd;// 초기화 완료 char clr[6] = { 'w', 'y', 'r', 'o', 'g', 'b' }; int dir['Z' + 1]; // turn int src[6][2][4] = {// 기준 p(rotax), 회전방향 +-(rotdr), src p { { 5, 2, 4, 3 },{ 4, 3, 5, 2 } }, { { 4, 3, 5, 2 },{ 5, 2, 4, 3 } }, { { 4, 0, 5, 1 },{ 5, 1, 4, 0 } }, { { 5, 1,..
줄기세포 #include #include #define f(i, n) for(int i = 0 ; i < (n); ++i) using namespace std; int T, tc, R, C, K; int lf[2][650][650], rm[2][650][650], st[2][650][650];// 초기화완료 bool sd; // dfs1 int vst1[650][650], v; int dr[] = { -1, 0, 1, 0 }; int dc[] = { 0, 1, 0, -1 }; int rb, cb;// 초기화 완료 void dfs1(int r, int c) { vst1[r][c] = v; rm[!sd][r][c] = rm[sd][r][c] - 1;// 수명 감소 if (rm[sd][r][c] == 0 && st[s..
SWEA 제주도 여행 #include #include #define f(i, n) for(int i = 0; i < (n); ++i) using namespace std; int T, N, M; int adj[35][35]; struct info { char tp; int tm, st; }; info atr[35]; int ap;// 공항 int ht[35], hts;// 초기화 완료 // dfs int rt[35]; int msts, mrt[35], mrts;// 초기화 완료 bool vst[35]; // tc void bf(int s, int hr, int dy, int sts) { bool go_ht = false; bool go_ap = false; for (int u = 0; u < N; ++u) { if (vst[..
SWEA 1824 혁진이의 프로그램 인증 설계: 결국에는 src에서 dst로 갈 수 있는지 dfs(vst 추가 차원 필요) 코드: 처음에는 visited를 좌표, 메모리 기준으로만 처리했으나 3개의 TC가 통과되지 않아 방향을 추가하여 AC #include #define f(i, n) for(int i = 0; i < (n); ++i) using namespace std; int R, C; char prg[20][20]; int vst[20][20][18][4], v; int rot[4], rots; int dr[] = { -1, 0, 1, 0 }; int dc[] = { 0, 1, 0, -1 }; int ad[16], sb[16]; void edge(int &r, int &c) { if (r == -1) r = R - 1; else if (r..
백준 14889 스타트와 링크 문제: 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 코드: 전체 경우의 수(tb의 상한 + 1, as의 크기)는 1