본문 바로가기
반응형

완전 탐색20

SWEA 1949 : 등산로 조성 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 등산로 조성 링크 좌표를 저장하기 위한 RC 구조체를 선언한다. MAP의 주변을 벽(-1)으로 만들고 (1, 1)부터 입력을 받는다. 입력을 받으면서 가장 높은 봉우리를 찾는다. 그리고 다시 MAP을 돌면서 가장 높은 봉우리를 start 배열에 담는다. #define MAX (10 + 5) int T, N, K; int MAP[MAX][MAX]; int visit[MAX][MAX]; typedef struct st { int r; int c; }RC; RC start[MAX * MAX]; int scnt; void input() { int max; scanf("%d %d", &N, &K); for (int r = 0; r 2021. 5. 23.
SWEA 2105 : 디저트 카페 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 디저트 카페 링크 MAP의 좌표는 (1, 1)부터 시작하도록 입력을 받는다. int T, N; int MAP[MAX][MAX]; void input() { scanf("%d", &N); for (int r = 1; r 2021. 5. 17.
SWEA 2112 : 보호 필름 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 보호 필름 문제에서 요구한 대로 약품을 투입한다. 이 때, DFS에서 매번 MAP을 copy하는 비용을 낮추기 위해 약간의 테크닉을 사용할 수 있다. 특성 A가 0, B가 1이므로, MAP[1]에는 0을, MAP[2]에는 1을 저장해둔다. int MAP[3][MAX][MAX]; int list[MAX]; void input() { scanf("%d %d %d", &D, &W, &K); for (int r = 1; r 2021. 5. 14.
BOJ 2503 : 숫자 야구 알고리즘 문제 전체 링크 www.acmicpc.net/problem/2503 숫자 야구의 원리는 삼성 B형 샘플 문제 : 숫자야구게임을 참고하자. 이 문제에서는 답이 되는 answerList 배열에서 답이 될 수 없는 숫자를 지워나가는 방식으로 해결한다. 먼저 답의 후보는 100 ~ 999 중, 0이 없고, 중복된 숫자가 없는 번호이다. 따라서 숫자에 0이 포함된 경우와 중복된 번호가 있는 경우에 answerList에 1(삭제)을 표시한다. int main(void) { scanf("%d", &N); int answerList[1000 + 5] = { 0 }; for (int n = 100; n 2021. 5. 13.
SWEA 2117 : 홈 방범 서비스 (모의 SW 역량테스트) 삼성 A형 전체 링크 모의 SW 역량테스트 문제집 홈 방범 서비스 링크 가능한 큰 K부터 이익이 있는 한, 가장 큰 집의 수를 찾으면 된다. N x N의 MAP을 모두 서비스하기 위한 K는 N + 1이므로, K = N + 1의 영역부터 영역을 줄여나간다. void input() { scanf("%d %d", &N, &M); for (int r = 1; r 2021. 5. 11.
BOJ 17406 : 배열 돌리기 4 (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 2021. 4. 24.
BOJ 17281 : ⚾ (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 2021. 4. 17.
BOJ 17136 : 색종이 붙이기 (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 < 10; r++) { for (int c = 0; c < 10; c++) { scanf("%d", &MAP[r][c]); PAPER_COUNT += MAP[r][c]; } } for (in.. 2021. 4. 14.
삼성 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.
반응형