본문 바로가기
반응형

dfs66

SWEA 4013 : 특이한 자석 (모의 SW 역량테스트) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 특이한 자석 링크  풀이는 BOJ 14891 : 톱니바퀴 (삼성 SW TEST A형)를 참고하자. input 순서가 바뀌었고, 출력 방식만 다르다.#include #define MAX (100 + 20)int T;int wheel[5][10];int list[6];int number[MAX];int direct[MAX];int N;void input(){ scanf("%d", &N); for (int number = 1; number = 2; index--) { wheel[number][index] = wheel[number][index - 1]; } wheel[number][1.. 2021. 5. 5.
BOJ 17472 : 다리 만들기 2 (A형 상시) A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/2771 (상시 A형 문제집) www.acmicpc.net/problem/17472  아래의 순서대로 구현한다. 1) BFS를 이용해 섬을 구분한다.2) 섬과 섬 사이의 거리를 구한다.3) 섬의 개수 N에 대해, 다리 N - 1개를 선택하여 모두 연결되어 있다면, 다리의 길이를 갱신한다.구조체는 좌표를 기억하기 위한 RC 구조체가 필요하다.MAP 주변은 모두 -1로 처리하고 (1, 1)부터 입력을 받는다.connect 배열은 섬과 섬 사이의 거리를 저장하기 위한 배열이다.섬과 섬 사이의 거리는 가장 가까운 거리만 필요하므로, 큰 값(WORST = 0x7fff000.. 2021. 5. 1.
BOJ 17471 : 게리맨더링 (A형 상시) SW 역량테스트 합격하기 A형 강의 오픈!! (인프런 바로가기) 삼성 A형 전체 링크 www.acmicpc.net/workbook/view/2771 (상시 A형 문제집) www.acmicpc.net/problem/17471 A형에서 그래프는 2차원 배열로 만들면 대부분 충분하다. 제시된 N이 매우 작기 때문이다.(N이 매우 큰 그래프는 링크드 리스트를 이용해 그래프를 만들어야 한다.) 만약 1번 구역과 2번 구역이 인접하다면, MAP[1][2] = MAP[2][1] = 1, 그렇지 않다면 0이 된다.people 배열에는 구역의 인구 수를 저장한다.#define MAX (10 + 5)int N;int MAP[MAX][MAX];int people[MAX];void input(){ scanf("%d", &N).. 2021. 4. 28.
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.
BOJ 17281 : ⚾ (A형 상시) 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  먼저 1번 타자를 4번에 고정하면 경우의 수를 만드는데 처리해야할 코드가 추가되므로,1번 타자는 1번에 고정하고 2 ~ 9번 타자에 대한 경우의 수를 .. 2021. 4. 17.
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 17136 : 색종이 붙이기 (A형 상시) SW 역량테스트 합격하기 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  DFS로 완전 탐색을 하기 위해 아래의 3가지 함수를 만든다. checkPaper는 (r, c) 좌표에 대해 색종이를 붙일 수 있는지 판.. 2021. 4. 14.
삼성 A형 샘플 문제 : 프로세서 연결하기 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  tc가 여러 개이기 때문에 매 tc마다 input을 받고, 초기화를 해줘야 한다.이 문제에서는 최대 core에서 최소 전.. 2021. 4. 11.
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.
반응형