전체 글
-
스타트와 링크백준알고리즘 2019. 8. 8. 23:48
#include #include #include using namespace std; int s[20][20]; int n; int go(int index, vector& a, vector& b) { if (index == n) { if (a.size() != n / 2) return -1; if (b.size() != n / 2) return -1; int t1 = 0; int t2 = 0; for (int i = 0; i < n / 2; i++) { for (int j = 0; j < n / 2; j++) { if (i == j) continue; t1 += s[a[i]][a[j]]; t2 += s[b[i]][b[j]]; } } int diff = t1 - t2; if (diff < 0) diff =..
-
구슬탈출2백준알고리즘 2019. 8. 6. 00:54
#include using namespace std; int h, w; int map[10][10]; struct ball { int x, y; bool in = true; }; ball r; ball b; int ans = 11; void go(int dir, int cnt, int rx, int ry, int bx, int by) {//1은 아래로 2는 위로 3은 오른쪽으로 4는 왼쪽으루 if (ans bx) { if (map[rx + 1][ry] == 3) { map[rx][ry] = 0; rin = false; mr = true; } if (map[rx + 1][ry] == 0) { map[rx][ry] = 0; rx += 1; map[rx][ry] = 1; mr = true; } if (map[..
-
2105. [모의 SW 역량테스트] 디저트 카페SWexpertAcademy 2019. 8. 5. 01:04
#include #include #include using namespace std; int tc; int n, result; int map[21][21]; bool r[21][21]; bool d[101]; int sx, sy;//출발위치 int dx[] = { 1,1,-1,-1 };// 방항 중요함 -> 어떤식으로 선택해야할지 int dy[] = { 1,-1,-1,1 }; void dfs(int x, int y, int dir, int cnt) { if (x == sx && y == sy && cnt > 1) {//종결 result = result > cnt ? result : cnt; return; } for (int i = 0; i 배열 초과하게 냅두기..
-
치킨배달백준알고리즘 2019. 8. 2. 20:09
#include #include #include #include using namespace std; int map[50][50]; int ans = 100000; int n, m; vector chick; vector home; void go(){ vector permu; for(int i = 0; i < chick.size(); i++){ if(i < m) permu.push_back(1); else permu.push_back(0); } do{ int sumna = 0; for(int i = 0; i < home.size(); i++){ int s = 10000; for(int j = 0; j < chick.size(); j++){ if(permu[j] == 1){ int temp = abs(hom..
-
미로탐색백준알고리즘 2019. 8. 1. 05:45
#include #include #include #include #include int n, m; int a[101][101]; int d[101][101]; int dx[] = { 0,0,1,-1 }; int dy[] = { 1,-1,0,0 }; using namespace std; void bfs(int x, int y) { queue q; q.push(make_pair(x, y)); int cnt = 1; d[x][y] = cnt; while (!q.empty()) { x = q.front().first; y = q.front().second; q.pop(); for (int i = 0; i ..