본문 바로가기

전체 글

(269)
다익스트라 Heap 을 배열로 만들어라. inser pop 메소드 만들어라. indexing 기법 ( D[ Heap[] ] ) 으로 작성가능 보급로 문제 ㄱㄱ 랭기쥐의 pq 가 deque 를 쓰는데, 이는 느리다. [중위순회 ] 로직에 따라 몇개의 갯수인지 잘 나누어서 읽어들여라 ( 전체읽어들여서 한개씩 파싱 xx ) [계산] 노드는 연산자와 피연산자의 역할을 둘다 할수 있어야한다.
day3정리 바깥 루ㅜ프 4번 더 돌게됨 안쪽에서 반복문으로 처리 x > 한개씩 처리(자신도 빼주어야한다.) Math.max 를 써야했는가 . 함수호출에 따른 오버헤드가 발생한다. 높이차를 돌고 또다시 loop를 돌이유가 있나 max대신 if문장을써라 vector.reserve(N); 잘했다. 왜? if 문에서 좌우 중에 낮은게 하나만 발생해도 break 해줘야한다.and 조건의 특징은 첫뻔재 조건이 False가 나오면 뒤에꺼는 검사안한다. vector : 가변사이즈 배열 but 그래서 오버헤드가 발생하기도한다. 그부분을 상쇄하기 위해서 Reserve (ㅜ)dmf 으 ㄹ사용해서 공간을 확보해놓느낟. 사실 vector buildings(N)했으면 reserve안햇음 된다. 그리고 사실 크기 알고있으니 배열쓰면된다. 그..
scanf 의 문제점 컴퓨터는 입력을 받을 때 버퍼라는 것을 이용해서 입력의 처리를 효율적으로 하고 있습니다. abcd를 입력할때 a따로 b따로 c따로 입력되는것이 아니라 , abcd 를 stdin에 저장하고 마지막으로 개행문제가 입력되면 이 stdin(버퍼)에서 꺼내서 처리합니다. 그런데 scanf 는 개행문자가 나오기 직전까지 버퍼에서 읽어드린후 버퍼에서 삭제시켜 버립니다. 다음과 같은상황에 문제가 생길 수 있어요 scanf("%d", &num); stdin(버퍼(입력스트림)) 에 123\n이 들어가 있음 이게 끝나고 나면 stdin 에 123은 삭제되고 \n만 남음 scanf("%c", &charictar); // 남은 \n 때문에 여기에 입력을 치기도 전에 \n이 들어가게됨 [두번째예시] printf("문자열을 입력하..
우선순위 큐 리스트 이용 ( 삽입 O(1), 삭제 O(n)) ) 힙 이용 ( O(logn) O(logn) ) 힙이란 ? 완전 이진 트리 의 일종 [힙정렬 구현 ] #include void heapSort(vector &arr){ priority_queue h; // 가장 큰 값을 먼저 뱉게 되어있음 for ( int i =0 ; i MAX_N } 맨마지막에 넣고, 비교하면서..
Queue (배열로 원형큐만들기) 구현 #include #define MAX_N 100 int front; int rear; int queue[MAX_N]; void init(){ front =0; rear = 0; } int isEmpty(){ return (front == rear); } int isFull(){ return ( (rear+1)%MAX_N == front); } int enqueue(int value){ if (isFull()){ return 0; } else{ queue[rear ] = value; rear ++; if( rear ==MAX_N){ rear =0; } return 1; } } int dequeue(int *value){ if( isEmpty()){ return 0; }else{ *value = queue[..
스택 구현 top 은 push를 하면 값이 들어갈 곳이라고 할 수 있겟다 #include #define MAX_N 100 int top; int stack[MAX_N]; void stackInit(void){ top = 0; } int stackIsEmpty(void){ return (top =0); } int stackIsFull(void){ return (top == MAX_N); } int stackPush(int value){ if(stackIsFull()){ printf("stack overflow!"); return 0; } stack[top] = value; top++; return 1; } int stackPop(int *value){ if (stackIsEmpty()) { return 0; } to..
C++ Sort 알고리즘 #include sort(start,end) ㄴ [start,end)의 볌위에 있는 인자를 오름차순으로 정렬해주는 함수이다. quick sort 를 기반으로 구현 되어있다. O(nlogn) 비교함수를 사용해서 정렬을 변환할 수 있다. sort(v.begin(), v.end() , compare); sort(v.begin(), v.end() , greater(); sort(v.begin(), v.end() , less(); compare 함수를 잘 만들면 좋을듯 #include #include #include #include using namespace std; class Student{ string name; int age; Student(string name, int age): name(name), a..
14600. [Pro] 성적 데이터베이스 학생과 팀과 시험점수가 있다. 학생은 mID , mTeam , m 학생은 10만명 팀은 5팀 시험점수는 1~5까지 API 는 다음과 같다. - 학생을 넣고 ( 최대 10만회 호출) - 학생을 뺴고 ( 최대 10만회 호출) - 학생의 점수를 업데이트하고 ( 최대 10만회 호출) - 특정팀의 모든 학생 점수를 업데이트하고 ( 최대 10만회 호출) - 특정팀의 1등 점수 ( 동일점수라면 id 값으로 비교)를 구하는 api 가 있다. ( 해당 API 는 최대 100회 호출) 학생을 넣거나 빼거나 특정학생의 점수를 업데이트하는것은 쉬우므로 나중에 생각하자. 특정팀의 1등 점수구하는것은 100회 호출이므로 그냥 전수조사 해도 된다. 특정 팀의 모든 학생 점수를 업데이트 하는것을 생각해야한다. 이때 우리가 사용하지 ..