본문 바로가기
반응형

알고리즘/[ADV] 삼성 SW Expert Academy A형17

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.
SWEA 5648 : 원자 소멸 시뮬레이션 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 원자 소멸 시뮬레이션 링크 좌표가 -1000 ~ 1000으로 굉장히 넓기 때문에, MAP에는 atom을 표시만 하고, atom 배열을 이용해 atom을 이동한다. atom 구조체는 좌표 (r, c), 방향, 보유 에너지가 필요하다. typedef struct st { int r; int c; int dir; int energy; }ATOM; ATOM atom[1000 + 100]; 좌표가 음의 값을 가지므로, OFFSET을 이용하여 양의 값으로 만들어야 배열에 담을 수 있다. 이 때, 0.5초 구간 충돌을 구현하기 위해, 좌표를 2배로 늘린다. 좌표를 2배로 늘렸으니 원자들은 항상 1초마다 충돌한다. 가장 작은 좌표의 값은 -1000이고 2배를 할 경우 .. 2021. 4. 26.
SWEA 5650 : 핀볼 게임 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 핀볼 게임 링크 공의 움직임을 구현할 때, 고려해야할 사항이 많은 문제이다. 이런 경우, 실수를 줄이기 위해 define을 해두면 편하다. 먼저 block의 상태는 아래와 같이 정의한다. #define BLACKHOLE (-1) #define EMPTY (0) #define BLOCK_START (1) #define BLOCK_END (5) #define WORMHOLE_START (6) #define WORMHOLE_END (10) BLOCK인 경우는 1 ~ 5, WORMHOLME은 6 ~ 10이므로 START, END로 경계를 나눈다. 방향에 관한 define은 아래와 같이 정한다. 그리고 LEFT ~ DOWN에 대응하는 dr, dc 배열을 정의한다... 2021. 4. 22.
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.
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.
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.
삼성 SW 역량 테스트 A형 모의검정 문제 위치 삼성 A형 전체 링크 상단의 "신입 SW 역량 테스트란?"을 클릭 -> 모의검정 문제 예시 풀어보기 2021. 2. 6.
반응형