mongoDB를 사용하는 게시판은 게시글 id를 사용할 때 주로 \_id (object_id)를 사용한다.자체적으로 unique한 string을 만들어주기 때문인데, 이를 활용하면 별도의 auto_increment를 사용할 필요없이 unique한 id를 얻을 수 있게
mongoDB의 trigger는 transaction의 일부로 포함되는가? mongoDB는 자체적으로 auto increment를 지원하지 않기 때문에 추가적인 컬렉션을 사용해서 구현해 줘야한다. 구현하는 방법에 대한 내용은 공식 페이지를 참조하도록 하자. 내가 가
pintOS 주차가 끝나고 알고리즘 주차를 진행중입니다.https://leetcode.com/problems/kth-largest-element-in-an-array/description/sort로 가볍게 넘어갈 수 있는 문제지만 다른 접근법을 찾아봤습니다.s
32bit OS 기준 데이터 타입은 여러가지가 있지만 대표적으로 char, int, long, double 등이 있다.여기서 long long, double은 8byte 크기를 가진다.malloc으로 메모리를 할당받을경우 8byte를 하나의 alignment(할당 단위
Virtual Memory Address. 가상 메모리 시스템에서 사용하는 가상 주소를 뜻한다.가상 메모리 -> 페이지 테이블 -> 물리 메모리이렇게 접근을 하면서 우리가 사용하는 가상 메모리 주소(VA라고 칭한다)는 물리 메모리 주소(PA라고 칭한다)로 변환된다.각
git commit 명령어를 사용하면 커밋 메세지를 에디터로 편집할 수 있다.기본 에디터는 nano로 설정되어있는데 불편해서 vim 에디터로 바꾸려고 한다.git config --global core.editor "vim" 명령어를 통해 vim으로 편집할 수 있도록 변
우리 프로젝트에서는 makefile 을 통해서 프로젝트를 빌드하고 실행하게 됩니다.이 프로그램을 디버깅 하기 위해서는 자체적으로 컴파일 하고 실행하는 과정이 아닌 실행파일을 미리 만들어 놓고 gdb를 통해서 실행하는 과정이 필요합니다.따라서 현재 존재하는 실행파일을 바
이 내용은 Introduction to Algorithm 책에나온 목차순으로 정리하기 위해 작성했음을 알립니다.레드-블랙 트리는 각 노드가 추가 bit의 정보를 가지는 이진탐색트리이다. 각 노드의 색: 레드-블랙 둘중 하나. root-leaf의 simple path에
포인터를 공부하다 보면 '무엇을 가르키는 변수' 라는 표현을 자주듣는다.나는 이러한 표현을 좋아하지 않는데, 무엇을 가르킨다고 해서 특별한 취급을 받는것처럼 보이지만 실로는 그렇지 않다고 생각하기 때문이다.어디까지나 특수한 목적을 위해 사용되는 '변수'일 뿐이지, 결국
이분탐색을 사용하면 내가 원하는 값을 logN의 횟수로 알아낼 수 있다.중요한 포인트는 전제조건 밑 범위에 있는데 1\. 원하는 값이 lo, hi 안에 들어갈 수 있도록 범위를 잘 설정해야하고2\. 찾으려는 값이 오름차순 혹은 내림차순으로 정렬되어있어야 한다.오늘 백준
정말 어렵게 다가왔다.DP문제이다 보니 dp테이블을 만들어서 써먹으면 되겠다! 라는 틀 안에서 벗어날 수가 없었다.풀이는 해당 블로그에서 참조했다.마지막 Matrix\[start]\[0] \* Matrix\[pivot]\[1] \* Matrix\[start + term
Traceback (most recent call last): File "/Users/nekote42/Desktop/swjungle/baekjoon/week03/16500-문자열 판별.py", line 48, in <module> solution2(tu
caching이란 자주 접근하는 데이터를 빠른 접근이 가능한 공간(주로 cache memory)에 저장해두고 이를 반복적으로 사용하는 것을 말한다.내가 웹서핑을 하면서 네이버 홈페이지, SW사관학교 정글 github 주소 등을 북마크에 저장해두고 사용한다고 하면북마크(
위상 정렬 문제인 백준 그래프 수정 문제을 풀면서 했던 고민을 작성합니다.해당 문제에서의 핵심은V1 -> V2 간선이 있을경우 V1 > V2 이다1 ~ N 각각의 노드가 바뀐 숫자를 순차적으로 출력할 때 결과값이 사전식 순서에서 가장 앞에 와야한다.위상정렬을 수행하고
백준 풀이 1916 최소비용 구하기 접근 최단거리 최소비용 탐색 알고리즘인 다익스트라(Dijkstra) 활용 dfs를 통해 완전탐색을 수행하고 그 과정에서 소요된 cost를 계산하는 방식으로 접근했다.
정점들이 두 그룹으로 나뉜다는 개념을 정확히 이해하지 못했다.'두 그룹으로 나뉜다' 라는 부분에서 '두 정점이 맞닿을 때 두 정점은 항상 서로다른 그룹이다' 라고 이해하는 편이 더 낫겠다고 생각했다.내가 현재 위치한 노드에서 다음 노드로 탐색하기 전에 서로 다른 그룹인
이진 검색 트리를 구성 한 뒤 postorder로 출력하는 코드이 코드는 시간초과 발생전위 순회를 바로 후위순회로 바꿔 출력하는 풀이첫 번째 풀이는 보편적으로 시간초과가 발생한다.물론 같은 기수 동료 중 한명이 이 방법으로 성공했지만 나는 실패했다.dictionary를
list로 queue를 구현하게 되면 가장 왼쪽의 원소를 빼주어야 하기 때문에 pop(0)를 사용하게 된다.하지만 deque로 queue를 구현하게 되면 popleft()를 사용할 수 있게 되는데 deque.popleft()의 속도가 훨씬 빠릅니다.이유는 list.po
비교를 통해 정렬하는 알고리즘의 통칭버블정렬, 선택정렬, 삽입정렬, 병합 정렬, 퀵 정렬 등비교를 통한 정렬을 구현하는 과정에서 시간복잡도는 O(nlogn)을 넘을 수 없다는 점이 증명되었다.의사 결정 트리를 활용해보자.https://mathcenter.oxf
이진 탐색을 공부하면서 ~T / F~에 너무 집중한 나머지 범위 지정의 중요성을 놓쳤다.이진 탐색중 사용되는 lo, hi값은 정답이 될 수 있는 값이 존재하는 범위에 해당한다.이 문제를 풀면서 이진 탐색의 결과를 '공유기를 설치할 위치'로 지정했다.하지만 이렇게 해서는