본문 바로가기
반응형

알고리즘/[ADV] 삼성 SW 역량 테스트 A형46

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.
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.
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.
BOJ 21608 : 상어 초등학교 (삼성 SW TEST A형) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/21608 시뮬레이션 문제는 그대로 구현하면 된다. 학생 구조체 PEOPLE은 학생의 번호와 좋아하는 사람을 저장해야 한다. 학생은 N * N이므로 love 배열에 love[좋아하는 사람의 번호] = 1 로 표시하도록 하자. 그리고 좌표 (r, c)를 저장할 배열 spot이 필요하다. #define MAX (20 + 5) typedef struct st1 { int index; int love[MAX * MAX]; }PEOPLE; PEOPLE people[MAX * MAX]; typedef struct st2 { int r; int c; }RC; RC spot[M.. 2021. 4. 26.
BOJ 20058 : 마법사 상어와 파이어스톰 (삼성 SW TEST A형) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/20058 시뮬레이션 문제이므로, 그대로 구현한다. 먼저 input은 (1, 1)부터 받아서 주변을 MAP의 주변이 0이 되도록한다. 그러면 주변의 얼음을 체크할 때 편하다. 그리고 MAP의 size는 2N이므로 비트 연산 (1 2021. 4. 20.
반응형