분류 전체보기 (689) 썸네일형 리스트형 [리눅스] goto 사용 시 컴파일 [1. 개요]c++ 코드 작성 시, goto 문이 필요한 경우동일한 코드라도 컴파일러 종류에 따라서 컴파일이 될 수도 있고 안될 수 있다.윈도우 msvc 컴파일러는 허용 폭이 관대한 편이고,리눅스 g++ 컴파일러는 굉장히 타이트 한 편인 것 같다.[2. 예제]아래 코드는 리눅스에서 컴파일이 안된다.#include int main(int argc, char **argv){ if (argc == 1) { goto EXIT; } int a=3; int b=4; std::cout error: jump to label ‘EXIT' 이라는 에러가 발생.원인은 변수의 선언이 goto 문과 와 goto 할 label 사이에 있.. 컨벡스 헐. [1708] [1. 문제 설명]https://www.acmicpc.net/submit/1708/87944456[2. 풀이 접근]컨벡스 헐 알고리즘의 기본 문제[3. 코드] Convex hull (볼록 껍질) [1. 개요]컨벡스 헐(이하 볼록 껍질) 이란?평면 위 N개의 점이 주어졌을 때,M 개의 점을 이용하여, 나머지 모든 점을 내부에 포함하게 만드는 도형.즉, 모든 점을 포함하는 볼록 다각형 중, 면적이 최소인 다각형을 말한다.[2. 알고리즘 - 개요]컨벡스 헐을 구하는 알고리즘은 아래와 같은 것들 있다.Graham scan (그라함 스캔)Jarvis marchDivide & Conquer여기서 가장 유명한 알고리즘이 그라함 스캔이라고 한다.그라함 스캔의 동작 방식은 아래와 같다.주어진 점을 y 순으로 정렬한다. (y 가 같은 경우는 x 순으로 정렬)정렬 된 점 중 첫번째 점을 기준으로 반시계 방향으로 나머지 점들을 정렬한다.정렬 된 점 들 중, 처음 2 개의 점을 스택에 푸쉬한다.그 다음 점이, 스택의.. 네트워크 유량. [6086] [1. 문제 설명]https://www.acmicpc.net/problem/6086[2. 풀이 접근]동일한 edge 가 여러 번 주어질 수 있다.이 경우 해당 edge 의 용량을 그 만큼 늘려 주도록 한다. 그리고,,, [3. 코드] 네트워크 유량, Dinic 알고리즘 [1. 개요]네트워크의 최대 유량을 계산 할 때, 포드-풀커슨 알고리즘 외 디닉 알고리즘에 대한 정리https://testkernelv2.tistory.com/601[2. 알고리즘]디닉 알고리즘은 두가지 단계로 구성 된다.Level graph 의 생성Blocking flow 를 지키면서, 유량을 흘려보냄.더 이상 source 에서 sink 로 유량을 흘려 보낼 수 없을 때까지 위 과정을 반복한다.증가 경로 (Augmenting path) 가 없을 때 까지[3. Level graph]레벨 그래프는 BFS 를 이용하여 계산한다.Source 에서 시작하여, Sink 에 도달 할 때 까지 BFS 를 진행 하는 것이다. 여기서 Level 은 각 노드에 설정 되는데, Source 에서 해당 노드까지 도달한 최소 h.. [C++] struct byte align [1. 개요]구조체 작성 시, 메모리 접근 및 구조체 크기 개선을 위한 byte align 관련 하여 정리한다.[2. 예제]#include struct A { char a; // 1byte int b; // 5byte char c[2]; // 7byte};struct B { char a; // 1byte int b; // 5byte char c; // 6byte};struct C { char a; // 1byte char c; // 2byte int b; // 6byte};struct AA { char a; // 1byte char c[2]; // 3byte int b; // 7byte};i.. 아호코라식. [10256] [코드] CMake 작업 환경 구성 [1. 개요]CMake 기반 C++ 작업 환경 구성 시, 필요한 부분을 정리한다.[2. C/C++ 관련 property]View -> Command palette -> C++ 검색 하면, Edit configuration 이 검색되는데,일단, UI 기반에서 필요한 부분을 설정한다.Compiler pathIntelliSense modeInclude path[3. CMake 관련 설정]CMakeLists.txt 가 있는 위치에서 VSCode 실행 시, cmake 가 알아서 수행되는데,경우에 따라서는 cmake 실행 시 필요한 파라미터가 누락되어 작업 환경이 오염될 수 있다.그래서, cmake 실행이 안되도록 할 필요가 있다.필요 시에만, 사용자가 수동으로 실행하는게 더 나은 듯.CMakeLists.txt 가.. 트라이. [5052] [1. 문제 설명]https://www.acmicpc.net/problem/5052[2. 풀이 접근]공통 된 접두어가 있는 경우 해당 목록은 일관성이 없다고 볼 수 있다.트라이를 이용하여, 공통된 접두어가 있는지 확인 할 수 있다.[3. 코드] C++ 참조자 처럼 사용하기(?) [1. 개요]C++ 참조자와 비슷한 개념이 rust 에도 있다고 생각하는데, C++ 참조자와 같은 패턴을 rust 에서도 사용하려니, 잘 안되서 정리해본다.[2. 간단한 예제]fn main() { let mut myarray: [u32; 4] = [0; 4]; println!("{:?}", myarray); myarray[0] = 1; // 직접 접근하여 값을 수정. println!("{:?}", myarray); let rv = &myarray[0]; // 0번째 원소의 참조자, 읽기만 가능함. println!("{:?} {:?}", rv, *rv); let rv = &mut myarray[1]; // 1번째 원소의 mutable 참조자. // rv = 2; .. 이전 1 2 3 4 ··· 69 다음