본문 바로가기
반응형

구현83

SWEA 5648 : 원자 소멸 시뮬레이션 (모의 SW 역량테스트) SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 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초마다 충돌한다.가장.. 2021. 4. 26.
BOJ 17406 : 배열 돌리기 4 (A형 상시) 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 명령에 대한 순서를 임의로 정해서 배열 A의 최솟값을 구해야하.. 2021. 4. 24.
SWEA 5650 : 핀볼 게임 (모의 SW 역량테스트) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 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.. 2021. 4. 22.
BOJ 3954 : Brainf**k 인터프리터 (A형 상시) SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/2771 (상시 A형 문제집) www.acmicpc.net/problem/3954 명령어를 쉽게 판단하기 위해 아래와 같이 define하자.typedef unsigned char uc;#define MAX (50000000)#define DECREASE ('-')#define INCREASE ('+')#define POINTER_LEFT ('')#define POINTER_RIGHTJUMP ('[')#define POINTER_LEFTJUMP (']')#define OUTPUT ('.')#define READ_AND_SAVE (',')#define MODULO (25.. 2021. 4. 21.
BOJ 20058 : 마법사 상어와 파이어스톰 (삼성 SW TEST A형) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/20058 시뮬레이션 문제이므로, 그대로 구현한다. 먼저 input은 (1, 1)부터 받아서 주변을 MAP의 주변이 0이 되도록한다. 그러면 주변의 얼음을 체크할 때 편하다.그리고 MAP의 size는 2N이므로 비트 연산 (1 을 이용하여 MAP_SIZE를 따로 저장한다.int N, Q, MAP_SIZE;int A[MAX][MAX];int tmpA[MAX][MAX];void input(){ scanf("%d %d", &N, &Q); MAP_SIZE = 1  시뮬레이션은 main에서 L을 입력받으면.. 2021. 4. 20.
SWEA 5653 : 줄기세포배양 (모의 SW 역량테스트) SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 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은 줄기세포의 생명력 수치를 표시하기 위해 사용한다. 줄기세포를 퍼.. 2021. 4. 18.
BOJ 20057 : 마법사 상어와 토네이도 (삼성 SW TEST A형) 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 }; 모래가 일정 비율로 흩날리게 되므로, 모래를 기준으로 좌표를 미리 정해둔다.위에서부터 왼쪽으로 순서.. 2021. 4. 16.
SWEA 5656 : 벽돌 깨기 (모의 SW 역량테스트) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 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  매 tc마다 input을 받고, 남은 벽돌의 최소 개수인 MINANS를 초기화하고 DFS를 실행한다.int main(void){ scanf("%d", &T); for (int tc = 1; tc 한 번 벽돌을 부순 곳에서 다시 벽돌을 부술 수 있으므로, 경우의 수는 WN이 된다... 2021. 4. 15.
BOJ 20056 : 마법사 상어와 파이어볼 (삼성 SW TEST A형) 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;FIR.. 2021. 4. 13.
반응형