c++ 6

삼성 SW 역량테스트 B형/Pro 대비 - 최적화 기법

삼성 SW 역량테스트 B형/Pro 대비 - 최적화 기법 1. 들어가기 앞서 C, CPP 기준으로 -O 옵션이 없는 상태에서 기준으로 한다. Java 혹은 언어에 따라 다른 결과가 나올 수 있다. 2. 함수 인라이닝 빈번하게 호출 되는 경우, 함수를 인라인화 하는 것이 좋다. 이때 inline 키워드를 통한 컴파일 타임의 인라이닝은 최적화 옵션에 따라서 동작하게 되므로, macro를 통한 인라이닝을 하는 것을 의미한다. // inline 키워드 inline void MAX(int a, int b){ return a > b ? a : b }; // 전처리문 #define MAX(a, b) ((a) > (b) ? (a) : (b)) 문제에 따라서 TC당 한 두차례 호출되는 경우에는 인라이닝의 큰 효과를 보지 ..

[C/C++] Simple Polygon의 Triangulation - OpenGL

1. Visual Studio 2015와 OpenGL 사용 아래 글 참조 https://jcdgods.tistory.com/374 [C/C++] 간단하게 Visual Studio 2015에 C++ OpenGL 설치하기 1. OpenGL 다운로드 OpenGL Windows 압축 파일 다운로드 OpenGL 홈페이지에서 윈도우 C++용 GLUT을 다운 받아서 원하는 위치에 압축을 푼다. 그냥 D드라이브가 편하니까 D:\glut에 저장하였다. 2. Visual Studio.. jcdgods.tistory.com 2. 코드 https://github.com/ChangdaeJeong/triangluation-openGL 위의 깃허브 참조 ChangdaeJeong/triangluation-openGL trianglu..

[C/C++] 간단하게 Visual Studio 2015에 C++ OpenGL 설치하기

1. OpenGL 다운로드 OpenGL Windows 압축 파일 다운로드 OpenGL 홈페이지에서 윈도우 C++용 GLUT을 다운 받아서 원하는 위치에 압축을 푼다. 그냥 D드라이브가 편하니까 D:\glut에 저장하였다. 2. Visual Studio 프로젝트 만들기 비주얼 스튜디오를 켜고, Windows 32 console 프로젝트를 하나 생성한다. 그런 다음 솔루션 탐색기에서 해당 프로젝트를 우클릭하여, 속성으로 들어간다. 그런 다음 속성 페이지에서 우측 상단에 위치한 구성 관리자를 연다. 그런 다음 활성 솔루션 구성을 클릭하여, 새로 만들기를 한다. 새로 만들 솔루션 구성 이름은 아무거나, OpenGL_debug로 만들었다. C/C++ 수정 C/C++ 일반탭 또는 VC++ 디렉터리에 들어가서 포함 ..

[C/C++] Simple Polygon의 Triangulation – OpenGL

1. Visual Studio 2015와 OpenGL 사용 아래 글 참조 http://fatc.club/2017/03/25/1814 2. 코드 https://github.com/ChangdaeJeong/triangluation-openGL 위의 깃허브 참조 3. 데모 영상 콘솔창 + OpenGL 영상 https://www.youtube.com/watch?v=pxCs9ynF_OA&feature=youtu.be OpenGL 영상 https://www.youtube.com/watch?v=fBwQU2o17aQ 4. 기타 Triangulation 할때, Upper & Lower Chain을 이미 알고 있다는 가정하에, 구현하였음. 초기 시작시 X-coordinate 순으로 점이 추가됨. 그 다음 Upper Cha..

[C, C++] 1~N 연속된 수로 이루어진 랜덤 배열

1~N, N~M으로 이루어진 배열 또는 이미 지정된 값들로 구성된 배열을 랜덤하게 생성하는 방법에 대해 누군가 질문한 적이 있다. 만일 테스트 용도로 그 값들을 랜덤하게 생성해야 한다면, 시간에 따른 RAND함수로 도출하는 것은 절대적으로 리소스 낭비가 크다. 예를 들어, 1~10까지의 수로 이루어진 배열 [1,2,3,4,5,6,7,8,9,10]을 랜덤하게 뽑으려면 확률상 몇번의 RAND()를 불러야 할까? 따라서 랜덤으로 배열을 만드는 것 보다. 이미 만들어진 배열을 랜덤으로 섞는 것이 더 유리하다. C++이나 Java와 같은 언어에서는 이미 이런 기능을 함수로 만들어 제공한다. 함수의 이름은 Shuffle이다. 만약 셔플 함수를 제공하지 않는 다면 아래와 같이섞을 수 있다. void shuffle(i..

[Node.js] Node.js와 외부 프로그램(Java, C, C++) 연결 (bridge)

서버를 만들다 보면 NPM 패키지에 포함되지 않은 기능이 필요한 경우가 생긴다. 이런 경우, 어쩔수 없이 다른 프로그래밍 언어를 사용해야하는 경우가 발생한다. 또한 성능 문제로 반드시 C,C++를 써야하는 경우가 생기기도 한다. Node.js에서 타 언어 프로그램을 호출하는 경우 여러가지 방법이 있지만, 나의 경우에는 한가지 프로그램만 실행하면 되었기 때문에 child_process 패키지의 exec를 사용했다. (터미널 터맨드와 동일) (1) STDOUT을 이용한 처리 방법 물론 이 방법은 터미널 명령이기 때문에 위험하다. (하지만.. 뭐 소스가 변조되지 않는 이상은 문제가 없을 것이고, 이미 변조 단계에 들어섰다면 서버 소스와 DBMS 정보를 다 털린것과 다름없기 때문에..) var exec = re..

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사