[C++] std::string

1. 문자열의 뒤에서 부터 검색 종종 우리는 어떤 파일이 어떤 디렉토리에 존재 하는지 알 필요가 있다. string::substr 함수를 통해 0번째부터 마지막에 나오는 '/' 까지 »

[C++] dll 의존성 검사

C++ 에서 dll을 만들어 사용하거나 다른 언어에서 사용할때 분명히 경로가 올바르고, 코드를 올바르게 구현 하였음에도 불구하고, 아래와 같은 오류 메세지를 뿜는 경우가 있다. ????.dll'을(를) 로드할 »

[Algorithm]가장 가까운 2의 멱수

BMP 이미지같은 파일 포맷은 가로(width)가 반드시 4bytes 의 배수가 되어야 한다. 이때 발생하는 padding을 계산하기위해, Width 보다 크고 가장 가까운 4의 배수를 찾아야한다. 고등학생 »

[CUDA] CUDA 8.0,9.0 Visual Studio 2015 설정

쿠다의 설치는 WSpring 을 사용하는것을 추천한다. Visual Studio를 먼저 설치하고 CUDA를 설치하여야 한다. CUDA는 무조건 최신버전을 사용하는것이 좋은것은 아니다. 2018년 5월 현재 가장 안정적인 CUDA버전은 8. »

[opencv] image rotate

Computer Vision에 관한 글을 쓸땐 항상 예시 사진을 무엇으로 할지 고민하는데 그 점이 좋다. (좋은게 좋은거라고) opencv를 제대로 파질 않았지만, 확실한건 하나 있다. 바로 이미지의 자료형이 »

[API] RPC programming

rpc 설치 sudo apt-get install rpcbind -y 확장자가 .x 인 파일을 하나 생성한다. add.x라는 파일을 하나 만들고 아래와 같이 입력한다. add.x struct Numbers{ int »

[Windows] 확장자 일괄 변경

Windows 시스템에서 확장자를 일괄 변경하는일은 종종 있다. 그때마다 perl로 스크립트를 짰는데, 이제 보니 그럴 필요가 없다. 아래처럼 ren 이란 명령어가 존재한다. (rename 의 약자인듯) ren *.txt »

[C] __noop키워드

이 글을 쓰는 시점 2016년 11월 19일! 2013년 11월 17일에 네이버 블로그에 써논 글을 보았다. 정확히 3년 전인데 내가 3년전에는 이런걸 했구나 하는 느낌... 여튼 __noop »

[Visual C++] 글자의 가로,세로 길이

DC를 이용해 출력될 글자의 크기를 알아내는 방법이다. 해당 DC가 폰트를 가지고 있고, 실제로 출력될때 width, height를 구할 수 있다. GetTextExtentPoint32 함수이다. BOOL GetTextExtentPoint( HDC hdc, // Device »

[C] linux 시간측정 gettimeofday

나는 여태 시간 측정을 할때 clock() 함수를 사용했는데, 지난번 sandbox 를 구현하면서 시간이 잘 측정이 안되길래 Sleep() 를 하는동안은 측정을 못하는걸 대충 알고는 있었다. 리눅스에서 clock( »

[Eigen] C++ template library for linear algebra

Eigen 라이브러리는 웹사이트에 게시된 그대로 선형대수 라이브러리 이다. http://eigen.tuxfamily.org/index.php?title=Main_Page eigenvector 연산 때문에 이 라이브러리를 교수님께서 소개해 주셨다. 고유벡터에 »

[perl] Windows10에서의 cpan

Windows 8/8.1/10 시스템 환경에서는 cpan 에서 모듈 설치가 잘 안된다.그냥 안된다 사실 cpan 은 linux/windows 모두 terminal 에서 cpan install [Module] »

[C] Math Function

C 의 <math.h> 에는 여러가지 수학 함수들이 존재한다. 이들에 관해 간단하게 정리를 해본다. 1. 자연로그를 쓰자. 먼저 간단한 log 함수에 대해 적어본다. log는 »

[C][C++][Perl][Pascal] String Format

특정 자료형 int,double 등을 문자열의 형태로 만드는 작업은 많이 사용되는 작업이다. C언어 는 sprintf 라는 함수를 사용하며 사용법은 아래와 같다. #include<stdio.h> »

[PS] BOJ 11657 타임머신

BOJ-11657 타임머신 https://www.acmicpc.net/problem/11657 본 문제는 시간 C가 음수가 나올 수 있기 때문에, 벨만-포드 알고리즘을 사용해야 한다. 음의 페로가 존재한다면 -1 만 »

[PS] BOJ 1865웜홀

BOJ-1865 웜홀 https://www.acmicpc.net/problem/1865 본래 벨만-포드 알고리즘은 방향그래프에서만 적용가능한 알고리즘이다. 하지만 본 문제에서는 웜홀만 방향이 있다고 설명한다. 따라서 우리는 지점과 지점사이에 가중치가 »

[PS] BOJ 2252 줄세우기

BOJ-2252 줄 세우기 https://www.acmicpc.net/problem/2252 본 문제는 단순히 입력을 인접리스트인 그래프로 만든뒤에, 위상정렬한 결과를 출력하면 된다. solution #include<iostream> #include& »

[PS] BOJ 1707이분 그래프

BOJ-1707 이분그래프 아래의 사이트는 이분그래프를 판별하는 문제이다. https://www.acmicpc.net/problem/1707 본 문제는, DFS 탐색을통해 Vertex를 색칠해가면서 색칠이 완성되면 이분그래프임을 확인하는 문제이다. 이분그래프 알고리즘에 »

[Algorithm] Topological Sort

topological sort **위상정렬(topological sort)**이란 일반적인 정렬과는 다르다. 위상정렬은 Graph에서 쓰이는 정렬 기법중 하나이다. 선행 조건은 그래프가 DAG(directed acycle graph)이여야 한다. 쉽게 설명하자면, »

[C/C++] cross platform coding

1. OS check #if defined(_WIN32) || defined(_WIN64) char* os = "windows"; #elif defined(__linux__) char* os = "linux"; #elif defined(__APPLE__) char* os »

[Algorithm] Hough Transform Line Detection

[Computer Vision] Hough Transform Line Detection 허프변환(선검출)은 이미지에서 직선을 검출하는 방법이다. 당연히 이미지=Edge를 적용한 이미지 이다. 우리는 기울기가 m , y절편이 n 인 수식을 »

[opengl] 설치

[opengl] glut 설치 windows 에서 opengl 설치 https://www.opengl.org/resources/libraries/glut/ 위 사이트에 들어간다. 아래 사진의 드래그된 파일을 다운받고, 압축을 해제한다. 아래와 같이 »

[opencv] 프로젝트 내장 빌드

[opencv] 프로젝트 내장 빌드 나는 라이브러리 하면, 컴퓨터에 설치하고 사용하는 방식이 더 좋다고 생각했다. ex) perl 의 cpan 같은 방식.. 그런데 이는 상황마다 다른것 같다. 크기가 »

[dlib] 19.7설치

[dlib] 설치 http://dlib.net/ 에 들어가서 좌측 하단에 있는 다운로드 버튼을 클릭한다. 아니면 아래에 미리 빌드된 버전을 받아도 된다. dlib19.7 prebuild zip 다운받은 파일을 »

[Atom]기본 설정

https://atom.io/ 에서 다운로드 받아 설치한다. 실행후 ctrl + ,로 설정 탭을 연다. 1. Settings/Core Core Setting -> Ignored Names 에 *.o , *.exe ,*.class, »

[C++] Singleton with multi threading

[C++] Singleton with multi threading C++ 에서 싱글톤 을 구현할때 항상 따라오는 문제는 멀티스레딩의 문제이다. 하지만 대부분이 이 부분을 잘못 이해하고 있는것 같다. 싱글톤 포스팅한 블로그를 »

[Algorithm] K-means

k-means는 Unsupervised Learning 에 속하는 Clustering Algorithm 이다. Unsupervised Learning 은 Training Data에 Label 이 없기 때문에, 비슷한 군집 끼리 분류를 해야한다. 클러스터를 정의하는 방법에는 많은 »

[linux] ubuntu 16.04

Ubuntu 16.04 setup project https://github.com/springkim/USpring sudo apt-get update && sudo apt-get upgrade -y programming language & git sudo apt-get install »

[Algorithm] Machine Learing

기계학습은 컴퓨터에게 코딩하지 않은 동작을 배우고 실행할 수 있도록 하는 능력(Arthur Samuel:1959) 이라고 정의 되었다. 어떻때 기계학습이 사용되는가? 이메일 스팸 필터를 생각해보자. 어떤 이메일이 »

[linux] gcc 5 upgrade

Ubuntu 16.04 나 Mint 18에는 기본적으로 gcc5가 설치되어 있다. sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y sudo apt-get update sudo apt-get install gcc-5 g++-5 -y »

[DS] Linkedlist C inplementation

링크드 리스트에 대해 모르는 사람은 이 글을 읽기 힘들 수 있다. 리스트 구현법애 대해 소개하므로, 소스코드가 매우 많이 나오게 된다. 컴공과 학부생 2학년이면 배우는 내용이므로 누구나 »

[Algorithm] Dijkstra

[Graph] Dijkstra 다익스트라 알고리즘은 음의 가중치가 없는 그래프에서 최단거리를 구하는 알고리즘이다. 초기에 다익스트라가 구현한 버전은 O(V^2)의 복잡도를 가진다. 원리는 아래와 같다. 1번 vertex에서 »

[Algorithm] Least Square Method

[Math] Least Square Method 최소 자승법(or 최소 제곱법) 이라고 부르며 이는 여러개의 X,Y 에 대해 이를 만족시키는 함수 f(x)를 찾는 과정이다. 이 »

[Algorithm] Eucludean, Manhattan

Euclidean distance , Manhattan distance 유클리드 거리는 유클리드 공간에서 두 점 사이의 거리를 계산할때 사용된다. 2차원 평면에서 흔히 피타고라스의 정리라고 부르는것과 같다. n차원 직교 좌표계에서 벡터 p, »

[pascal] fgl

파스칼의 RTL중의 generic list인 fgl에 대해 알아보자. 이 유닛에는 크게 2가지가 있다. 먼저 List계열의 클래스들을 알아보자. TFPGList TFPGList 이 클래스는 C++의 템플릿과 비슷한 클래스이다. 내부 »

[pascal] Setlength와 레퍼런스 카운팅

pascal에는 SetLength라는 함수 가 있다. 함수에 하이라이팅을 한것은, pascal에는 프로시저,함수,메소드,프로퍼티 이 4가지를 구분할 수 있어야하기 때문이다. C언어는 함수만이 존재하고,(반환값이 void 여도 함수라고 »

[pascal] 시간측정

uses SysUtils,DateUtils; var D1,D2:TDateTime; begin D1:=Now; {Do Something...} D2:=Now; writeln(FormatFloat('##0.000',MilliSecondsBetween(D1,D2)/1000)); {어차피 MilliSecond 이기 »

[pascal] 기초

pascal 자료형,함수,프로시저,유닛 자료형 함수,프로시저 함수는 반환값이 있는것이고, 프로시저는 반환값이 없는 것이다. procedure {인수는 ; 로 구분하며 동일 자료형의 인수는 콤마로 사용이 가능하다} procedure »

[java] ArrayList

자바의 ArrayList는 Collection Framework의 한 종류이다. C++처럼 operator[]를 지원하면 좋으련만.... E get(int index) 라는 메소드로 첨자접근을 지원한다. 대부분의 기능은 레퍼런스 사이트에 잘 나와 »

[java] Priority Queue

자바역시 C++ 처럼 우선순위 큐가 존재한다. 거두절미하고 소스부터 본다. import java.util.PriorityQueue; /*기본 생성자. 객체의 기본 비교 CompareTo를 사용한다.*/ PriorityQueue<Integer> pq=new »

[java] Random

1. Math.random() Math.random() 은 0~1 사이의 실수를 반환한다. 예를들어 이 값에다 100을 곱한후 int 로 형변환을 해주면 0~100사이의 난수정수를 얻을 수 있다. »

[Delphi] Editor Vertical Line(10.1 Berlin)

[delphi] editor vertical line http://www.cnpack.org/index.php?lang=en 위의 사이트로 이동하여 CnWizards 를 다운로드 받아 실행한다. (실행중인 델파이는 종료하고 실행한다.) 실행하면 아래와 »

[Delphi] IDE Theme Custom

[Delphi XE8] IDE theme custom 델파이의 기본 환경이 마음에 들지 않는다면 테마를 바꿔서 분위기를 바꿔보자. 먼저 델파이는 2개의 테마변경 프로그램이 있다. 1.IDE-Colorizer IDE의 색상을 바꿔주는 »