평소 자바를 사용해서 알고리즘 문제를 풀어왔었는데 c++로 연습을 하려니 이것저것 복잡한게 많았다. 그중에 계속 해결하지 못했던 디버깅문제를 해결해서 이 글에 정리했다. 컴파일러 환경 및 vscode 설정 윈도우와 mingw 컴파일러 환경에서 gdb를 사용했다. 이때 vscode의 기본 settings.json파일에 다음의 내용을 포함시켰다. 아래 처럼 빌드시 gcc.exe, g++.exe을 사용해야한다. 이것이 아니라 cpp.exe등을 사용하는 경우에 gdb가 읽을 수 없다는 에러 메세지를 확인했다. vscode user단위의 settings.json, workspace단위의 tasks.json, launc... Read more 21 Nov 2022 - 2 minute read
문제 알고리즘 코드 1. 문제 문제링크 문제의 핵심은.. 어떤 두 샘플의 무게차이를 여러번 알려줬을때 그 정보들을 활용해서 임의의 두 샘플의 무게차이를 알 수 있느냐 이다. 2. 알고리즘 만약 무게차이 관계를 간선으로한 그래프를 만든다 했을때, 어떤 두 샘플의 무게 차이를 알기 위해선 두 샘플이 같은 그래프에 속해 있어야한다. 또한 모든 무게차이를 그래프로 기록할 필요가 없다. 트리 형태로 만들어 루트와의 무게차이만 기록하면 된다. 이를 통해서 한 트리내의 모든 무게차이를 구할 수 있다. 이러한 형태로 자료구조를 구성하기 위해서 유니온 파인드를 사용하면 된다. 주의할 점은 두가지 이다. ... Read more 26 Sep 2022 - 2 minute read
Elimination은 $Ax=b$를 row picture관점에서 연립방정식의 소거법으로 해결하는것이다. 이를 기계적으로 수행하는 방법들이 있다. 이 글에서는 기본 개념을 정리하고자 한다. Upper Triangular System Pivot과 Mutiplier Permutation Matrix Augmented Matrix Elimination as Matrix Multiplication 1. Upper Triangular System $Ax=b$의 solution을 1차 연립방정식의 solution으로 본다면, 연산을 통해 solution을 구하기 쉽도록 방정식을 변환할 것이다. 이... Read more 23 Sep 2022 - 2 minute read
Vector as a Function Combination of columns: Column Picture Mutiplication a row at a time: Row Picture Independence vs Dependence 1. Vector as a Function 작성중.. 2. Combination of Columns: Column Picture \(A = \begin{bmatrix} 1 && 2 \\ 3 && 4 \end{bmatrix} = \begin{bmatrix} \vec{c_1} && \vec{c_2} \end{bmatrix} ... Read more 23 Sep 2022 - 1 minute read
문제 필요한 알고리즘 코드 1. 문제 문제 링크 두 선분 각각의 양 끝점 좌표를 알려주고, 두 선분이 교차하는지 확인하는 문제이다. 이때 주의할 점은 한 선분의 끝 점이 다른 선분이나 끝 점 위에 있는 것도 교차하는것으로 간주한다는 것이다. 또한 좌표의 범위가 -1,000,000부터 1,000,000까지 이기 때문에 ccw알고리즘 적용시 long long타입으로 좌표를 저장해야 충분하다. 2. 알고리즘 이 문제를 풀때 필요한 알고리즘은 다음과 같다. CCW(Clockwise or Counter Clockwise) - 어떤 3개의 점과 점을 잇는 순서가 주어졌을때, 그 방향이 시계 방향인지,... Read more 22 Sep 2022 - 2 minute read