본문 바로가기

전체 글31

.gitignore 과 git rm 으로 저장소 관리하기 .gitignore 이란? git을 통해 관리하지 않을 파일, 폴더를 작성해 두는 설정 파일입니다. 이를 통해 원격 저장소에 올릴 필요 없는 (node_modules, dist폴더의 파일, log파일, .env파일 등) 파일을 쉽게 관리할 수 있습니다. git으로 관리되고 있는 폴더 내부에 .gitignore 파일을 만들기만 하면 설정이 완료됩니다. node_modules /dist .env.local **/*.log 위와 같은 내용이 .gitignore 파일에 작성되어 있다면 다음과 같이 작동합니다. node_modules 폴더와 하위 리소스를 무시 dist 폴더와 하위 리소스를 무시 .env.local 파일을 무시 모든 폴더에서 .log로 끝나는 모든 파일을 무시 만약 예외 사항(무시하지 않음)을 추.. 2020. 7. 28.
[C++] std::advance(),std::distance() 임의 접근 생성자 알고리즘 문제를 풀다 재밌는 함수를 발견했습니다 vector와 같은 ArrayList 형태의 자료구조의 대표적인 장점은 값에 임의로 접근할 수 있다는 것입니다. vector a; a.push_back(1); a.push_back(2); a.push_back(3); 위 코드에서 a는 {1,2,3}의 형태의 data를 가지고 있습니다. 이때 a[1] 혹은 a.at(1)을 사용한다면 1번째 혹은 마지막 값을 거치지 않고 바로 2번째 값인 2에 접근할 수 있습니다. 하지만 map이나 list와 같이 LinkedList 자료형은 이러한 방식으로 data에 접근이 불가능합니다. 하지만 오늘 살펴볼 std::advace()을 사용한다면 LinkedList에서도 임의로 값에 접근할 수 있습니다. std::advance.. 2020. 5. 4.
Segment Tree / 세그먼트 트리 세그먼트 트리는 data를 구간별로 나누고 작업해야 하는 과정 중 구간별로 나누어 반복적으로 실행할 작업들의 결과를 미리 계산하여 저장해 둔 트라이입니다. 이후 해당 작업을 수행하는 대신 세그먼트 트리 내에 있는 결과를 통해 보다 빠르게 원하는 결괏값을 받아올 수 있습니다. 세그먼트 트리는 바이너리 트리로 구성되어 있다. data의 시작 index를 0 마지막 index를 9라고 가정하면 루트는 0~9의 구간을 나타내고 왼쪽의 자식 노드는 0~4 오른쪽 자식 노드는 5~9의 구간을 가지게 된다. 즉 부모노드 구간의 ( 시작 index + 마지막 index ) / 2를 기점으로 자식노드를 나누게 된다. leaf 노드는 시작 index와 마지막 index가 같은 node들로 data의 개수만큼 존재하게 된다.. 2020. 3. 31.
& 참조형 변수 C언어와 다르게 C++에서는 참조형 변수를 사용할 수 있습니다. C++에서 사용할 수 있는 변수의 종류는 총 3가지입니다. int a = 2; // 일반 변수 int *b = &a; // 포인터 변수 int &c = a; // 참조형 변수 1. 일반 변수: 직접 값을 보유 2. 포인터 변수: 다른 값의 주소(또는 null)를 보유 3. 참조형 변수: 다른 객체 또는 값의 별칭으로 사용 참조형 변수는 주소와 동일하게 &기호를 사용하여 선언할 수 있습니다. 주소를 나타내는 &와 구분되는 점은 int와 같은 자료형 바로 뒤에서 사용된다는 점입니다. (int *a와 비슷하게 int &a와 같이 사용됩니다.) 참조형 변수를 사용할 때는 몇 가지를 주의해야 합니다. 선언과 동시에 초기화해야 합니다. 초기화된 후에는.. 2020. 3. 22.