공부 13

MongoDB 시간 groupby 쿼리

회사에서 만드는 서비스중에 MongoDB를 사용하는 서비스가 있다. 시간 관련해서 쿼리를 해야할 일이 있어서 확인을 하다가 좀 이상한 점이 있어 확인을 했다. MongoDB에 New Date() 를 사용해서 저장할 경우 기본적으로 ISODate UTC 기반으로 저장이 되는 것 같다. 서버 시간이 KST임에도 UTC로 저장되는게 기본인 듯 싶다. 일반적으로 Z가 붙으면 UTC 붙지 않으면 KST인데 ISODate로 표시되는 값은 아래와 같이 뒤에 Z가 붙건 붙지 않건 모두 UTC 이다. "createdAt" : ISODate("2024-04-02T15:00:41.737+0000") 이건 한국시간 4월 3일 "createdAt" : ISODate("2024-04-02T14:59:41.737+0000") 이건..

공부/알고리즘 2024.04.04

LL 이진탐색트리

이진탐색트리 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980int bcnt;struct Node { int data; //왼 : 나보다 작은값 //오른 : 나보다 큰값 Node *lch, *rch; Node *alloc(int nd) { data = nd, lch = rch = NULL; return this; }}buf[SIZE]; // 트리에서 data 검색Node* searchNode(Node* now, int tg) { // 데이터 검색되면 리턴 if (now == NULL |..

공부/알고리즘 2020.12.10

정렬(sort) 관련

insertion sort (삽입정렬) - 주로 top N을 구할때 만들어 두고 사용한다. 32개 이하의 갯수일때는 제일 빠르다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 // top10을 뽑으려면 12개 정도 여유있게 // 들어간 갯수를 관리하기 위한 변수 int trr[12] = { 0 }, an = 0; int i = 0, j = 0; // 들어간 갯수 뒤에서부터 앞으로 체크 for (i = 0; i = 0; --j) { // 현재 위치와 나를 비교해서 내가 더 좋으면 // 뒷자리로 하나 보내고, 아니면 break; // 내가 들어갈 자리는 j+1자리 (j는 나보다 좋으니까) if (trr[j] > arr[i]) trr[j + 1] = trr[j]; els..

공부/알고리즘 2020.12.09

부분합 문제

Honor's method (특정 진법의 수를 10진법으로 변환) 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 char vect[10]; int result; // a진법을 10진법으로 변환 int honor() { for (int i = 0; vect[i]; ++i) { if (vect[i] >= 'A' && vect[i] 127) result -= 256; } // 10진법을 b진법으로 변환 void reverse_honor() { int temp[100] = { 0 }; int t = 0; while (1) { temp[t++..

공부/알고리즘 2020.12.07