[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의 색상을 바꿔주는 »

[C++11] auto,decltype,array

이번엔 C++11에서 새롭게 나온 auto와 decltype에 대해 알아보자. auto는 타입추론 기능이다. 하나의 자료형으로 볼 수 있으며, 컴파일 타임에 해당 자료형이 결정된다. auto a=5; //a는 »

[C++11] nullptr

C++11에서 새로이 제공하는 nullptr에 대해 알아본다. 식상한 뻔히 다 아는 이야기는 생략하고 싶지만, 이 글로부터 처음 nullptr을 배우는 분들을 위해 소개한다. nullptr 키워드는 c++11에서 »

[C++] infinite

C/C++ 에서의 무한대 infinite 이미지좀 가져올라고 검색했더니 가수 인피니트가 뜬다....짜증난다.. 우선 C++에는 무한대 타입이 존재한다. <limits> 의 std::numeric::limits::infinity( »

[DS] [BIT] Binary Index Tree

이진인덱스트리 흔히 계속 변하는 배열의 부분합을 구할때 FOR i N to M 으로 복잡도 O(n) 으로 구할수도 있겠지만, 이런 자료구조의 궁극적 사용 목표는 빠르게 하기 »

[linux] uid euid??

리눅스 C 라이브러리의 unistd.h에는 getuid , geteuid 가 있다. 이 두 함수의 차이점이 좀 어려운데, 정확하게 알아야 한다. getuid는 get user identification의 약어 함수로 사용자의 uid를 »

[linux] 프로세스를 CPU 코어에 고정

왜 이런것을 하느냐? 나 같은 경우는 Online Judge에서 사용하는 Sandbox가 항상 일정한 속도가 나와야 해서 사용한다. 먼저 ps 명령으로 프로세스의 pid를 알아오자. ps -a 그후 taskset으로 »

[linux] Apache2 install

sudo apt-get install apache2 -y cd /etc/apache2/sites-enabled sudo vim 000-default.conf 1.주석 처리된 ServerName www.example.com 을 ServerName 128.xxx.xxx.xxx »

[PS] 1002~1005, 1007 ~ 1013

problem1002 https://www.acmicpc.net/problem/1002 제곱근 계산이 들어가면 정밀도 때문에 정답을 맞추지 못한다 #!/usr/bin/perl my $t=<>; while($t--){ my $s= »

[PS] BOJ 1006습격자 초라기

DFS + memorized 방법으로 풀면 쉽다. 원형으로 된 배열을 처음과 끝을 분리하여 선형구조로 풀고, 지그재그 형태로 순서를 명시하고 각 원소에 해당되는 최소값을 table에 저장하여 memorized로 풀면 된다. »

[PS] Daejeon 4846 Mines

본 문제는 지뢰를 터트리는데, 최소한 으로 터트려야하는 개수를 출력하면된다. 다음과 같이 지뢰가 있을때, (1) 을 터트리면 (4)도 터지게 되고 (3),(6)도 터지게 된다. 그리고 »