본문 바로가기

BOJ/C++

(202)
수2 *n이 luckey set에 들어가면 어떤 구간도 성립될 수 없다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 //수2 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int l, n; cin >> l; int nums[51] = {0}; bool isLucky[1001] = {0}; for (int i = 1; i > nums[i]; isLucky[nums[i]] = true; } cin >> n; if..
연속합 *숫자 한개 이상은 반드시 선택해야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #include #include #define MAXX 100001 using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n; int nums[MAXX] = {0}; int total = -987654321; cin >> n; int min = 987654321; for (int i = 1; i > nums[i]; } int dp[MAXX][2] = {{0}}; //자신이 선택되었을 때와 아닐..
물통 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 #include #include #include #include #define MAXX 201 using namespace std; typedef pair pp; typ..
터보소트 -홀수번째의 경우 고를 수 있는 수 중 가장 작은 수를 찾아서 앞으로 이동시켜야 하고 -짝수번째의 경우 고를 수 있는 수 중 가장 큰 값을 찾아서 앞으로 이동해야한다. -이동 횟수를 내 앞 혹은 내 뒤에서 나까지의 인덱스 중 1의 개수를 세면 내가 이동해야 하는 횟수이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 #include #include #include #include #define MAXX 100001 using nam..
공장 쌍이 될 수 있는 전선은 내 앞의 인덱스들이 가지고 있는 전선만큼이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 #include #include #define MAXX 500001 #define MAXXX 1000001 using namespace std; typedef long long ll; int n; int num[MAXXX], arr[MAXX], tree[MAXX]; void update(int idx, int diff) { while(idx 0) {..
벽 부수고 이동하기2 *dfs는 시간초과 (전수조사를 하면 안됨) *벽을 부순 횟수를 visited에 기록해서 한 번 갔던 곳도 최단경로가 된다면 다시 갈 수 있도록 해야한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105..
구슬탈출4 *구슬은 같은 위치에 있으면 안되기 때문에 더 멀리서 온 구슬을 뒤로 보낸다. (그 자리에서 못 움직였을 경우도 있기 때문에) *두 구슬이 같은 위치일 때 구멍이면 다른 방향으로 움직인다. *구슬은 기울여지는 방향에 따라 움직이기 때문에 while 반복문으로 움직였다. 이때, 바로 움직이는 게 아니라 현재 칸이 O라면 검사를 하고(붉은 구슬이 구멍에 있는지, 두 구슬이 동시에 빠지진 않았는지..) , 움직일 칸이 #이라면 움직이지 않아야 한다. (조건검사) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50..
성곽 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 #include #include using namespace std; int n, ..