본문 바로가기
반응형

모의고사71

SWEA 2382 : 미생물 격리 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 미생물 격리 링크 미생물의 구조체 BIO에는 미생물의 방향, 개수, 그리고 시뮬레이션을 위해 max값을 저장하도록 만든다. 아래의 조건을 보자. ④ 이동 후 두 개 이상의 군집이 한 셀에 모이는 경우 군집들이 합쳐지게 된다. 합쳐 진 군집의 미생물 수는 군집들의 미생물 수의 합이며, 이동 방향은 군집들 중 미생물 수가 가장 많은 군집의 이동방향이 된다. 합쳐지는 군집의 미생물 수가 같은 경우는 주어지지 않으므로 고려하지 않아도 된다. 합쳐진 군집이 아닌, 각 군집의 미생물 수가 가장 큰 군집의 방향으로 갱신되므로, max를 저장해서 비교해야 한다. 그리고 현재 미생물의 상태의 정보인 MAP과 다음 상태의 정보를 저장할 nextMAP을 선언한다. 방향은 d.. 2021. 5. 9.
SWEA 2383 : 점심 식사시간 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 점심 식사시간 시뮬레이션 문제는 그대로 잘 구현하면 된다. 먼저 좌표를 저장할 RC 구조체를 선언한다. people배열에는 사람의 좌표를, stair 배열에는 계단의 좌표를 저장한다. list는 DFS로 사람을 나눌 때 사용한다. 2차원 배열 distance는 계단과 사람 사이의 거리이다. distance[1][3]은 1번 계단과 3번 사람과의 사이를 의미한다. stairLength는 계단을 내려가 이동이 완료되는 시간을 저장한다. (1/2번 계단에 대한 시간) #define MAX (10 + 5) int T, N; int MAP[MAX][MAX]; int list[MAX]; typedef struct st { int r; int c; }RC; RC pe.. 2021. 5. 7.
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.
SWEA 4014 : 활주로 건설 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 활주로 건설 링크 풀이는 BOJ 14890 : 경사로 (삼성 SW TEST A형)를 참고하자. tc가 여러 개이고 출력 방식만 변경되었다. #include #define MAX (100 + 20) int T, N, L; int MAP[MAX][MAX]; int TMAP[MAX][MAX]; void input() { scanf("%d %d", &N, &L); for (int r = 0; r b) ? a - b : b - a.. 2021. 5. 2.
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 21611 : 마법사 상어와 블리자드 (삼성 SW TEST A형) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/21611 달팽이 배열을 만들고, 그 배열에 해당하는 index를 관리하면 해결할 수 있다. 아래는 변수에 대한 설명이다. MAP : 입력에 주어지는 2차원 배열 snail : 달팽이 배열의 index 관리를 위한 2차원 배열 indexArray : indexArray[i] = i로, 달팽이 배열의 index를 만들기 위한 배열 indexValue : 달팽이 배열을 1차원 배열로 볼 때의 값을 저장한 배열 icnt : indexValue 배열의 size bombCount : 폭발한 1 ~ 3번 구슬의 개수 MAP은 좌표의 (1, 1)부터 받는다. #define M.. 2021. 5. 1.
SWEA 5644 : 무선 충전 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 무선 충전 링크 MAP의 좌표를 BC로 나타내자. BC 구조체의 cnt는 MAP[r][c]에서 중복된 BC의 개수이고, bc배열은 BC의 번호가 된다. 각 BC의 성능은 power배열에 저장한다. typedef struct st1 { int bc[10]; int cnt; }BC; BC MAP[MAX][MAX]; int power[10]; 사용자 A, B의 좌표를 저장할 구조체 배열과 주어진 입력을 기록할 direction 배열을 만든다. typedef struct st2 { int r; int c; }RC; RC personA, personB; int directionA[100 + 20]; int directionB[100 + 20]; 최초로 MAP의 B.. 2021. 4. 30.
BOJ 21610 : 마법사 상어와 비바라기 (삼성 SW TEST A형) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/21610 구름의 좌표를 저장할 RC 구조체가 필요하다. 최초 구름 4칸을 입력하고, cloud count = ccnt를 4로 설정해두자. 그리고 MAP의 좌표는 (1, 1)부터 받는다. #define MAX (50 + 5) int N, M; int MAP[MAX][MAX]; typedef struct st { int r; int c; }RC; RC cloud[MAX * MAX] = { 0 }; int ccnt; void input() { scanf("%d %d", &N, &M); for (int r = 1; r 2021. 4. 30.
BOJ 21609 : 상어 중학교 (삼성 SW TEST A형) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/21609 무지개 블록, 검은색 블록, 그리고 빈칸을 define하자. 보통 배열의 빈칸은 0을 쓰지만, 여기에서는 무지개 블록이 존재하므로 -2로 define한다. 좌표를 저장하기 위한 RC 구조체와 블록 그룹의 우선순위를 결정할 BLOCK_INFO 구조체를 만든다. 그리고 MAP 주변을 검은색 블록으로 벽을 만들고, (1, 1)부터 입력을 받도록 하자. #define MAX (20 + 5) #define RAINBOW (0) #define BLACK (-1) #define EMPTY (-2) int N, M; int MAP[MAX][MAX]; typedef s.. 2021. 4. 29.
반응형