본문 바로가기
반응형

dfs48

SWEA 4013 : 특이한 자석 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 특이한 자석 링크 풀이는 BOJ 14891 : 톱니바퀴 (삼성 SW TEST A형)를 참고하자. input 순서가 바뀌었고, 출력 방식만 다르다. #include #define MAX (100 + 20) int T; int wheel[5][10]; int list[6]; int number[MAX]; int direct[MAX]; int N; void input() { scanf("%d", &N); for (int number = 1; number 4) return 0; if (compare number && wheel[n.. 2021. 5. 5.
BOJ 17472 : 다리 만들기 2 (A형 상시) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/2771 (상시 A형 문제집) www.acmicpc.net/problem/17472 아래의 순서대로 구현한다. 1) BFS를 이용해 섬을 구분한다. 2) 섬과 섬 사이의 거리를 구한다. 3) 섬의 개수 N에 대해, 다리 N - 1개를 선택하여 모두 연결되어 있다면, 다리의 길이를 갱신한다. 구조체는 좌표를 기억하기 위한 RC 구조체가 필요하다. MAP 주변은 모두 -1로 처리하고 (1, 1)부터 입력을 받는다. connect 배열은 섬과 섬 사이의 거리를 저장하기 위한 배열이다. 섬과 섬 사이의 거리는 가장 가까운 거리만 필요하므로, 큰 값(WORST = 0x7fff0000)으로 초기화한다. islandList는 각 섬의 좌표를 .. 2021. 5. 1.
BOJ 17471 : 게리맨더링 (A형 상시) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/2771 (상시 A형 문제집) www.acmicpc.net/problem/17471 A형에서 그래프는 2차원 배열로 만들면 대부분 충분하다. 제시된 N이 매우 작기 때문이다. (N이 매우 큰 그래프는 링크드 리스트를 이용해 그래프를 만들어야 한다.) 만약 1번 구역과 2번 구역이 인접하다면, MAP[1][2] = MAP[2][1] = 1, 그렇지 않다면 0이 된다. people 배열에는 구역의 인구 수를 저장한다. #define MAX (10 + 5) int N; int MAP[MAX][MAX]; int people[MAX]; void input() { scanf("%d", &N); for (int i = 1; i 2021. 4. 28.
BOJ 17406 : 배열 돌리기 4 (A형 상시) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/2771 (상시 A형 문제집) www.acmicpc.net/problem/17406 MAP은 (1, 1)부터 input을 받고, COMMAND 구조체에 (r, s, c)를 저장한다. #define MAX (50 + 10) int N, M, K; int MAP[MAX][MAX]; typedef struct st { int r; int c; int s; }COMMAND; COMMAND command[10]; void input() { scanf("%d %d %d", &N, &M, &K); for (int r = 1; r 2021. 4. 24.
BOJ 17281 : ⚾ (A형 상시) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/2771 (상시 A형 문제집) www.acmicpc.net/problem/17281 9명의 타자가 있고 1번 타자는 4번에 고정이므로, 8! = 40320번의 경우의 수에 대해 시뮬레이션을 하면 된다. 9명 타자를 줄 세우는 방법은 N과 M (1) - 순열의 방법을 이용한다. input에서는 간단히 player의 결과를 저장한다. void input() { scanf("%d", &N); for (int i = 1; i 2021. 4. 17.
SWEA 5656 : 벽돌 깨기 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 벽돌 깨기 링크 벽돌은 (1, 1)부터 입력을 받고 주변을 벽(-1)으로 만들어두자. #define MAX (15 + 5) int T, N, W, H; int MAP[MAX][MAX]; int MINANS; void input() { scanf("%d %d %d", &N, &W, &H); for (int r = 0; r 2021. 4. 15.
BOJ 17136 : 색종이 붙이기 (A형 상시) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/2771 (상시 A형 문제집) www.acmicpc.net/problem/17136 input에서 색종이 상태를 입력받고, 색종이의 개수 PAPER_COUNT에 저장해둔다. 그리고 각 색종이의 최대 개수인 5를 MAX_PAPER[1~5]에 저장한다. #define MAX (10 + 10) int MAP[MAX][MAX]; int PAPER_COUNT; int MAX_PAPER[10]; void input() { for (int r = 0; r < 10; r++) { for (int c = 0; c < 10; c++) { scanf("%d", &MAP[r][c]); PAPER_COUNT += MAP[r][c]; } } for (in.. 2021. 4. 14.
삼성 A형 샘플 문제 : 프로세서 연결하기 삼성 A형 전체 링크 swexpertacademy.com/main/sst/intro.do SW Expert Academy에서 A형 샘플 문제 프로세서 연결하기를 풀어보자. 좌표는 (1, 1)부터 받고, 주변을 MAP[r][c] = 2(벽)으로 처리해서 경계 조건을 쉽게 처리하도록 하자. (core = 1, 벽 = 2, 전선 = 3 으로 정의한다.) #define MAX (10 + 5) int T, N; int MAP[MAX][MAX]; void input() { scanf("%d", &N); for (int r = 0; r 2021. 4. 11.
BOJ 17135 : 캐슬 디펜스 (A형 상시) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/2771 (상시 A형 문제집) www.acmicpc.net/problem/17135 먼저 궁수가 탐색해야할 우선순위를 구해보자. 아래의 그림은 D = 1, 2, 3인 경우 궁수가 탐색해야하는 순서다. 적이 가장 가까울 경우 가장 왼쪽에 있는 적을 공격한다고 하였으므로, 거리가 가장 가까운 앞을 보고, 그 다음 거리부터는 왼쪽/가운데/오른쪽 순서대로 탐색한다. D = 4인 경우, 규칙이 점점 보인다. 위의 탐색 순서를 궁수를 기준으로 r, c로 나타내면 아래와 같다. 좌표 r은 -1부터 시작해서 감소하다가 다시 증가한다. 좌표 c는 처음엔 0이며, 그 다음 주기에는 -1 부터 1씩 증가, 그 다음은 -2부터 1씩 증가한다. 이 주기.. 2021. 4. 11.
반응형