본문 바로가기
반응형

시뮬레이션45

BOJ 23291 : 어항 정리 (삼성 SW TEST A형) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) https://www.acmicpc.net/problem/23291 어항은 N x N 배열의 row = N 부터 채워나간다. #define MAX (100 + 10) int N, K; int FISH[MAX][MAX]; void input() { scanf("%d %d", &N, &K); for (int i = 1; i 2021. 11. 6.
BOJ 23290 : 마법사 상어와 복제 (삼성 SW TEST A형) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) https://www.acmicpc.net/problem/23290 먼저, 문제 아래에 설명된 상어의 이동 방법에 대해 구현해보자. 상어의 이동 방법은 상하좌우 = 1, 2, 3, 4 중 3개를 선택하는 중복 조합이다 따라서 43 = 64가지 방법을 미리 구현해둔다. N과 M (4) - 중복 조합 코드에서 outputList를 고치면 된다. 상하좌우에 대한 경우의 수는 moveList에 저장해둔다. typedef struct st2 { int move[3]; }MOVE; MOVE moveList[70]; int mcnt; int list[10]; void outputList() { //for (int i .. 2021. 11. 6.
BOJ 23289 : 온풍기 안녕! (삼성 SW TEST A형) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) https://www.acmicpc.net/problem/23289 좌표에 맞춰서 상하좌우 define과 dr, dc 배열을 정의한다. #define RIGHT (1) #define LEFT (2) #define UP (3) #define DOWN (4) /* 순서대로 오른쪽 : 1, 왼쪽 : 2, 위 : 3, 아래 : 4 */ int dr[] = { 0, 0, 0, -1, 1 }; int dc[] = { 0, 1, -1, 0, 0 }; 문제를 풀기 위한 구조체를 정의한다. RC = 온도를 체크해야하는 checkPoint의 좌표 (r, c) HEATER = 온풍기의 좌표 및 방향 관리 QUEUE = 바람을.. 2021. 11. 6.
BOJ 23288 : 주사위 굴리기 2 (삼성 SW TEST A형) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) https://www.acmicpc.net/problem/23288 input은 아래처럼 처리한다. BOJ 14499 : 주사위 굴리기는 (0, 0) 부터 시작하였으나 여기서는 (1, 1)부터 시작한다. #define MAX (20 + 5) int N, M, K; int MAP[MAX][MAX]; void input() { scanf("%d %d %d", &N, &M, &K); for (int r = 1; r 2021. 10. 25.
SWEA 2117 : 홈 방범 서비스 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 홈 방범 서비스 링크 가능한 큰 K부터 이익이 있는 한, 가장 큰 집의 수를 찾으면 된다. N x N의 MAP을 모두 서비스하기 위한 K는 N + 1이므로, K = N + 1의 영역부터 영역을 줄여나간다. void input() { scanf("%d %d", &N, &M); for (int r = 1; r 2021. 5. 11.
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.
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.
반응형