반응형 구현83 SWEA 5658 : 보물상자 비밀번호 (모의 SW 역량테스트) SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 보물상자 비밀번호 링크 문제에서 제시한 예시는 아래와 같다. 이 배열을 직접 4칸 나눠서 회전할 필요는 없다. 구현이 까다롭고 귀찮기 때문이다. 먼저 크기 N / 4 = 3만큼 배열을 뒤에 덧붙인다. 그리고 i = 0부터 N - 1까지 N / 4 칸씩 문자열을 10진수로 저장하면 생성 가능한 수를 모두 구하게 된다.makeDecimal은 넘겨받은 배열을 기준으로 size만큼 16진수로 변경한다.배열은 문자열이기 때문에 'A' 이상인 경우는 'A'를 빼주고 10을 더하고, 그 외에는 문자열 '0'만큼 빼면 된다.그리고 mul 변수에 16을 곱해가면서 16진수로 변경한다.int makeDeci.. 2021. 4. 12. BOJ 17135 : 캐슬 디펜스 (A형 상시) 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.. 2021. 4. 11. BOJ 20055 : 컨베이어 벨트 위의 로봇 (삼성 SW TEST A형) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/20055 시뮬레이션 문제이므로 그대로 구현한다. BELT 구조체는 현재 belt의 번호, 로봇이 있는 경우 로봇의 번호, 그리고 내구도 A가 저장된다.robot의 번호는 벨트가 최대 200개이고 내구도가 1000이므로, 20만개 정도로 메모리를 잡는다.robot[i] = i번째 로봇이 현재 있는 belt의 번호이다.#define MAX (100 + 20)int N, K;typedef struct st{ int number; int robotNumber; int A;}BELT;BELT belt[.. 2021. 4. 10. BOJ 19238 : 스타트 택시 (삼성 SW TEST A형) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/19238 문제를 자세히 읽어서 아래의 조건을 파악하는 것이 핵심이다. 1) 승객의 출발지는 모두 다르지만, A 승객의 도착지와 B 승객의 출발지가 같을 수 있다.2) 승객의 출발지나 도착지가 벽으로 막혀서 찾을 수 없는 경우를 고려해야 한다. 먼저 구조체 3개가 필요하다. RC : 좌표 저장 구조체PEOPLE : 1 ~ M번 승객의 출발지와 도착지, 그리고 check를 이용하여 탑승 여부를 확인하는 구조체INFO : 택시가 가장 가까운 승객을 찾을 때, 승객의 번호와 거리를 저장할 구조체#def.. 2021. 4. 8. BOJ 19237 : 어른 상어 (삼성 SW TEST A형) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/19237 시뮬레이션 문제는 그대로 구현만 하면 된다. 먼저, MAP에는 number, current, time이 필요하다.number는 자신의 냄새를 찾기 위해 사용하고, current는 실제 현재 MAP에 있는 상어의 번호이다.그리고 time은 냄새의 유효시간이다. SHARK에는 상어의 좌표 (r, c), 방향, 방향에 대한 우선순위 2차원 배열, 생존 여부가 필요하다.typedef struct st1{ int number; int current; int time;}INFO;INFO MAP[.. 2021. 4. 6. BOJ 19236 : 청소년 상어 (삼성 SW TEST A형) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/19236 아래와 같이 FISH 구조체를 선언하여 좌표와 방향, 그리고 죽었는지 살았는지 체크하는 dead를 정의하자.상어의 이동을 쉽게 종료하기 위해 MAP 주변은 -1로 벽을 만들고, (1, 1)부터 입력을 받자.MAP에는 물고기의 번호만 저장하고, 그 물고기 번호로 fish 배열에서 물고기의 정보를 찾는다.int MAP[6][6];typedef struct st2{ int r; int c; int dir; int dead;}FISH;FISH Fish[17];void input(){ for .. 2021. 4. 3. BOJ 20061 : 모노미노도미노 2 (삼성 SW TEST A형) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/20061 시뮬레이션 문제는 그대로 구현하면 되지만, 위 문제는 조금 복잡하다.따라서 만들어야 하는 함수의 재활용을 잘 해야 구현과 디버깅이 쉽다. 먼저 전체 함수를 Blue / Green으로 나누는 것이 편하다. 1) block을 움직이는 함수는 moveBlue, moveGreen이다. block이 3가지 경우로 나뉘므로 내부에서 switch를 이용한다. 2) deleteBlue(column), deleteGreen(row) 함수로 블럭을 지운다. 3) getScoreBlue와 getSco.. 2021. 3. 31. BOJ 17825 : 주사위 윷놀이 (삼성 SW TEST A형) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/17825 시뮬레이션 문제는 시키는 대로 구현하면 된다. 이 문제에서는 파란색 화살표가 핵심이다. 파란색 화살표에 시작할 경우는 방향이 바뀌기 때문이다.이런 경우는 그냥 처음부터 움직여야하는 방향에 대한 답을 적어두고 시작하면 된다. 먼저 왼쪽의 점수판은 오른쪽 그림처럼 번호를 매겨 1차원 배열로 만든다. 그러면 아래와 같이 input에서 미리 답을 적어둘 수 있다.int dice[10 + 5];int next[32 + 5][6];int score[32 + 5];int board[32 + 5];.. 2021. 3. 28. BOJ 17822 : 원판 돌리기 (삼성 SW TEST A형) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/1152 (A형 문제집) www.acmicpc.net/problem/17822 원판이지만 2차원 배열에서 같은 번호면 큐에 넣어서 BFS 탐색을 하면 된다. circle[r][c] = 0인 경우는 탐색하지 않으므로, 주변을 0으로 만들고, (1, 1)부터 input을 받는다.void input(){ scanf("%d %d %d", &N, &M, &T); for (int r = 1; r 이제 원판을 돌리는 함수를 구현해보자.반시계 방향으로 1칸 움직이는 것은 시계 방향으로 M - 1칸 움직이는 것과 동일하므로, 시계 방향만 구해주면 된다.따라서 d == 1 (반.. 2021. 3. 26. 이전 1 ··· 6 7 8 9 10 다음 반응형