본문 바로가기

완전탐색21

[모의 SW 역량테스트] 점심 식사시간- 2383 문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5-BEE6AK0DFAVl SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 코드 : 더보기 #include #include #include #include #include #include using namespace std; class Person { public: int key; //배열 인덱스 int x, y; // 사람좌표 int aStairs, bStairs; // 각각의 계단입구까지 걸리는 시간 int enter; // 선택된 계단 입구 int lowCo.. 2019. 12. 28.
연구소 - 14502 문제 : https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. www.acmicpc.net 코드 : #include #include #include using namespace std; int N, M; int num[8.. 2019. 12. 25.
N-Queen - 9663 문제 : https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 코드 : #include #include using namespace std; int N = 0; int maxCount = 0; int arr[4][2] = { {-1, -1}, {-1, 1}, {1, -1}, {1, 1} }; vector temp; bool AddCheck(int i, int j) { for (auto v : temp) { // v.first == i 어차피 동일한 행이 들어올 수 .. 2019. 12. 23.
[모의 SW 역량테스트] 벌꿀채취 - 2115 문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V4A46AdIDFAWu SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 코드 : #include #include using namespace std; int N, M, C; int num[10][10]; bool check[10][10] = { false }; int honeySum = -2147483647 - 1; int honeyTotal = 0; int maxValue = 0; // M개 벌꿀 중 가장 큰 값 구하기. //line = 가로로 갈수있는 데드.. 2019. 12. 19.
테트로미노 - 14500 (Solve 2) 문제 : https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누 www.acmicpc.net 기존에는 해당 도형들의 회전된 모든 경우의 수를 구하여서 배열에 적재 후 이를 탐색하여 해결을 하였다. 이 방법도 속도가 .. 2019. 12. 14.
수영장 - 1952 문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpFQaAQMDFAUq&categoryId=AV5PpFQaAQMDFAUq&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 코드 : #include #include using namespace std; int price[4] = { 0 }; int use[12] = { 0 }; int minPrice = INT32_MAX; //수행되는 month void solution(int month, int sum) { //탈출조건 if (.. 2019. 12. 8.
사다리 조작 - 15684 문제 : https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선이 같은 위치를 갖는다. 아래 그림은 N = 5, H = 6 인 경우의 그림이고, 가로선은 없다. 초록선은 세로선을 나타내고, 초록선과 점선이 교차하는 점은 가로선을 놓을 수 있는 점이다. 가로선은 인접한 두 세로선을 연결해야 한다. 단, 두 가로선이 연속하거나 서로 www.acmicpc.net 코드 : #include #include using namespace std; bool num[31][11] = { fal.. 2019. 12. 8.
퇴사 - 14501 문제 : https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 코드 : #include using namespace std; int tnum[16] = { 0 }; int pnum[16] = { 0 }; int total = 0; void solution(int day, int sum, int n) { //탈출조건 if(day == n +1)//if (day + tnum[day] - 1 > n) { if (total n + 1) { return; } solution(day + tnum[day], sum + p.. 2019. 12. 3.
부분수열의 합 - 1182 문제 : https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 코드 : #include #include using namespace std; int num[20] = { 0 }; vector temp; int ncount = 0; int n, s; void solution(int index, int sum) { //탈출조건 if (index == n) { if (sum == s) { ncount+=1; } retu.. 2019. 12. 3.