본문 바로가기

분류 전체보기

(284)
16562) 친구비 #include #include #include #include struct pengyou { int cost; struct pengyou * link; int visit; }; int find(struct pengyou* arr, int tomo) { if (arr[tomo].visit link->link != NULL) { temp2->link = temp2->link->link; } temp1->link->link = temp2->link; temp1->link->visit = 1; } else { arr[tomo1].link = &arr[tomo2]; arr[tomo1].visit = 1; arr[tomo1].cost = arr[tomo2].cost; } } else { if (arr[tomo2]..
2869)달팽이 등산 (c, python) #include int main() { int oneday, down, mezase; double day = 0; scanf("%d %d %d", &oneday, &down, &mezase); day = ceil((double)(mezase - oneday) / (double)(oneday - down)); day++; printf("%d\n", (int)day); return 0; } /////////////////////////////////////// a, b, v = map(int, input().split()) day = 0 if (v - b) % (a - b) != 0: day = ((v - b) // (a - b)) +1 else: day = ((v - b) // (a - b)) print(..
어차피 떨어질거 뭐하러 부랴부랴 탭이랑 블로그이름 바꿨지 부질없다 시발... 됐다 알고리즘 공부 그까짓거 나혼자 하지 뭐.... 계절학기 끝나면 제대로 풀어야지... 계절 선대랑 병행하기는 그렇네... 동프도 만들어야겠고... 좆까라~ 공부 씨발 나혼자 할란다~ 원래는 오늘도 풀려했는데 오늘까지인 과제가 있을줄은 몰랐네~
복잡도 nlog(n)되도록 최대연속부분수열 도출하기 int cal(int * arr, int left, int right) { if (left == right) return arr[left]; int mid = (left + right) / 2; int min = -2000000000; int max = -2000000000; int sum = 0; for (int i = mid; i >= 0; i--) { sum += arr[i]; min = ( min > sum) ? min : sum; } sum = 0; for (int j = mid+1; j sum) ? max : sum; } int p = cal(arr, left, mid); int q = cal(arr, mid + 1, right); int result = (p > q) ? p : q; retu..
연속부분수열을 뒤집어 짝수항의 값이 최대가 되도록 하기 int cal(int * arr, int n) { int l = 0; int r = 1; int cha = 0; int max=-2000000000; int temp = 2; for (int i = 0; i max) { if (max < 0) { l = i; r = i + 1; } else r += temp; max = cha; temp = 2; } else { temp += 2; } } int loop = (r - l + 1)/2; for (int i = 0; i < loop; i++) { temp = arr[l+i]..
1005) acm짓기 #include #include #include #include #include using namespace std; #define VERTEXMAX 1001 #define EDGEMAX 100001 vector condition[VERTEXMAX]; int vertex; int edge; void Find(int finder, int *should_be_built, int *time, int *result) { queue q; fill(result, result + VERTEXMAX, 0); for (int p = 0; p 0) { int pusher = q.front(); printf("pusher %d\n", pusher); q.pop(); for (int next : condition[pusher..
1167) 트리의 지름 #include #include #include #include //pair클래스 : template struct pair; //pair p : 사용할 데이터타입 1, 2를 넣고, 그 클래스 p의 생성 //p.first(second) : p의 첫(두)번째 인자 반환 //make_pair(변수1, 변수2) : 변수 1(2)가 들어간 pair의 생성 using namespace std; #define MAX 100001 vector route[MAX]; // 형을 담는 pair형 vector, route 선언. 이 때, 벡터 안에는 max만큼 삽입 bool check[MAX]; int distance[MAX]; int answer; //void fill(ForwardIterator first, Forward..
잡1 #ifndef __GROWABLE_ARRAY_H__ #define __GROWABLE_ARRAY_H__ #include "Array.h" using namespace std; template class GrowableArray :public Array { public: GrowableArray(int size); virtual T &operator[] (int i) override; }; // 생성자 template GrowableArray::GrowableArray(int size) { // size가 0 이하의 값이면 에러메시지를 출력하고 종료 if (size len = new_len; delete[] t; // 0을 반환 return this->data[i]; } } #endif // __GROWA..