본문 바로가기
반응형

삼성 A형74

SWEA 5653 : 줄기세포배양 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 줄기세포배양 링크 먼저 좌표가 무제한이기 때문에, 어느 정도의 크기로 MAP을 선언할지 생각해야 한다. K가 최대 300번, 총 300번 시뮬레이션해야하고, 가장 빨리 증식하는 세포는 생명력 수치가 1이다. 따라서 2시간에 1번씩 4방향으로 계속 퍼지므로, 300번동안 최대 150 만큼 MAP이 커진다. 어느 정도 여유를 두기 위해 MAP은 500 x 500 중심점(OFFSET)은 250으로 두었다. #define MAX (500) #define OFFSET (250) int T, N, M, K; int MAP[MAX][MAX]; MAP은 줄기세포의 생명력 수치를 표시하기 위해 사용한다. 줄기세포를 퍼지게 하는 것은 줄기세포 구조체 CELL의 배열이다. .. 2021. 4. 18.
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.
BOJ 20057 : 마법사 상어와 토네이도 (삼성 SW TEST A형) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/20057 시뮬레이션 문제이므로, 그대로 구현하면 된다. 구현 전에 토네이도의 규칙을 알아보자. 먼저 토네이도는 최초로 ←로 움직인다. 그리고 순서대로 ↓, →, ↑로 움직이며 4방향을 반복한다. 따라서 0, 1, 2, 3을 왼쪽, 아래, 오른쪽, 위로 정의한다. /* 순서대로 왼쪽, 아래, 오른쪽, 위 */ int dr[] = { 0, 1, 0, -1 }; int dc[] = { -1, 0, 1, 0 }; 모래가 일정 비율로 흩날리게 되므로, 모래를 기준으로 좌표를 미리 정해둔다. 위에서부터 왼쪽으로 순서대로 0, 1, 2, ..., 8까지 번호를 매긴다. a .. 2021. 4. 16.
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.
BOJ 20056 : 마법사 상어와 파이어볼 (삼성 SW TEST A형) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/20056 시뮬레이션 문제는 시키는 대로 풀면 된다. 먼저 FIREBALL은 자신의 좌표(r,c), 질량(m), 속도(s), 방향(d)를 가진다. FIREBALL이 얼마나 많아질지 예측할 수 없으므로 적당히 크게 메모리를 잡는다. M은 최대 2500, 1000회 시뮬레이션이 진행되지만 의외로 작은 메모리도 pass한다. (실제 A형을 응시한다면 최대한 메모리를 넉넉하게 잡으면 된다.) typedef struct st1 { int r; int c; int m; int s; int d; }FIREBALL; FIREBALL fireball[10000 + 5000]; i.. 2021. 4. 13.
SWEA 5658 : 보물상자 비밀번호 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 보물상자 비밀번호 링크 문제에서 제시한 예시는 아래와 같다. 이 배열을 직접 4칸 나눠서 회전할 필요는 없다. 구현이 까다롭고 귀찮기 때문이다. 먼저 크기 N / 4 = 3만큼 배열을 뒤에 덧붙인다. 그리고 i = 0부터 N - 1까지 N / 4 칸씩 문자열을 10진수로 저장하면 생성 가능한 수를 모두 구하게 된다. makeDecimal은 넘겨받은 배열을 기준으로 size만큼 16진수로 변경한다. 배열은 문자열이기 때문에 'A' 이상인 경우는 'A'를 빼주고 10을 더하고, 그 외에는 문자열 '0'만큼 빼면 된다. 그리고 mul 변수에 16을 곱해가면서 16진수로 변경한다. int makeDecimal(char* ptr, int size) { int su.. 2021. 4. 12.
삼성 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.
반응형