카테고리 전체보기 101

[재귀 알고리즘] Reverse Array (배열 뒤집기)

[재귀 알고리즘] Reverse Array (배열 뒤집기) Reversing Array (배열 뒤집기)주어진 배열 $ [x_1, ... , x_n] $을 $ [x_n, ... , x_1] $로 바꾸는 것이 목적이다. 재귀의 개념을 이해하기 쉬운 예제라 재귀로 구현했지만 반복문으로 구현하는게 훨씬 효율적이다. 처음에는 1(a[0])과 7(a[6])을 바꾸고 2(a[1])와 6(a[5])를 바꾸는 함수를 호출한다.순차적으로 진행하다가 두 점이 만나거나 교차되면 종료한다. 12345678910111213141516171819202122232425262728293031323334353637383940#include using namespace std; void swap(int arr[], int a, int b..

[재귀 알고리즘] Linear Sum (순차합)

[재귀 알고리즘] Linear Sum (순차합) Linear Sum (순차합)순차합은 간단히 반복문으로 구현 가능하다. 하지만 재귀적으로 생각하는 것에 많은 도움을 줄 수 있는 예제이다.n개의 정수 $x_1, x_2, ... , x_n$가 있을 때, 주어진 정수의 합 $S(n) = \displaystyle\sum_{i=1}^{n} a_i$를 계산하는 문제이다. $$ S(n) = \begin{cases} a_1 & \quad \text{n=1} \quad \text{(base case)}\\ S(n-1)+a_n & \quad \text{n>1} \quad \text{(recursive step)}\\ \end{cases} $$ 코드를 먼저 보면,1234567891011121314151617#include ..

[Clion OpenCV] Jetbrain Clion OpenCV 설정

[Clion OpenCV] Jetbrain Clion OpenCV 설정 Clion OpenCV 설정Clion은 Intellij로 유명한 Jetbrain에서 만든 C, C++ IDE이다. Clion에서 OpenCV 설정을 해보도록 하겠다. 우선, OpenCV가 설치되어 있어야 한다. 안되어 있다면 아래 링크를 참조하여 설치한다.(Ubuntu : http://ledgku.tistory.com/59)(Windows : http://ledgku.tistory.com/60) 설치가 되었다면, Clion을 실행하고 새 프로젝트를 생성한다.그 다음 CMakeLists.txt 파일을 열고 아래 두 줄을 추가한다. target_link_libraries에 example은 프로젝트 이름이다. 생성한 프로젝트 명을 넣어주도..

[ICPC] Goldbach's Conjecture(2011 대전 예선)

[ICPC] Goldbach's Conjecture(2011 대전 예선) Goldbach's Conjecture골드바흐의 추측(Goldbach's Conjecture)는 오래전부터 알려진 정수론의 미해결 문제이다. 모든 2보다 큰 짝수는 두 개의 소수의 합으로 표시될 수 있다는 것이다. 정의나 이론이 아닌 추측인 이유는 모든 짝수에서 두 소수의 합으로 표현 가능한지는 증명되지 않았기 때문이다.(참조 - [소수 알고리즘] 소수의 특성과 에라토스테네스의 체 http://ledgku.tistory.com/61)예를 들어,$$ 4 = 2 + 2 $$$$ 6 = 3 + 3 $$$$ 8 = 3 + 5 $$$$ 10 = 3 + 7 = 5 + 5 $$$$ 12 = 5 + 7 $$$$ 14 = 3 + 11 = 7 + 7..

[소수 알고리즘] 소수의 특성과 에라토스테네스의 체

[소수 알고리즘] 소수의 특성과 에라토스테네스의 체 소수의 특성소수(Prime Number)는 약수로 1과 자기 자신만을 가지는 정수이다. 정수론의 기본 정리에 의해 모든 자연수는 단 하나의 소수들의 곱으로 표현된다. 예를 들면,$$ 91 = 7 * 13 $$$$ 10164 = 7 * 11^2 * 12 $$이를 소인수 분해의 일의성이라고 하는데 이 특징은 최대 공약수를 구하는데 매우 유용하게 사용될 수 있다. 최대 공약수는 두 개 이상의 자연수가 가지는 약수 중 가장 큰 수이다. 약수 또한 자연수 이므로 하나의 소수들의 곱으로 표현된다. 즉 최대 공약수를 구하려는 수들의 공통된 소수들을 모두 곱해 주면 최대 공약수가 되는 것이다.$$ 300 = 2^2 * 3^1 * 5^2, 18 = 2^1 * 3^2 $..

[OpenCV 설치] Windows OpenCV 설치, C++ 테스트

[OpenCV 설치] Windows OpenCV 설치, C++ 테스트 OpenCV 설치 - OpenCV 홈페이지(http://opencv.org/)에서 OpenCV 최신 버전을 다운로드한다. - 다운로드가 완료되면 파일을 실행한다. 실행하면 아래와 같은 창이 뜨는데 압축 해제할 경로를 지정하고 Extract버튼을 눌러준다. - 제어판 - 시스템(윈도우키 + Pause)에서 환경변수 설정을 한다. 시스템 변수에서 새로 만들기를 클릭한다. - 변수 이름 : OPENCV_BUILD 변수 값 : 위에 OpenCV 압축해제 경로 + \opencv\build 입력 후 확인 - 시스템 변수 중 Path를 선택하고 편집 클릭 후 맨 뒤에 ;%OPENCV_BUILD%\x86\vc12\bin; 입력 Visual Studi..

[OpenCV 설치] Ubuntu OpenCV 설치, C++ 테스트

[OpenCV 설치] Ubuntu OpenCV 설치, C++ 테스트 OpenCV 설치OpenCV는 설치해야 하는 패키지가 많으므로 스크립트로 만들어서 실행시키는게 편하다.gedit을 실행 시키고 아래 내용을 붙여 넣는다.version="$(wget -q -O - http://sourceforge.net/projects/opencvlibrary/files/opencv-unix | egrep -m1 -o '\"[0-9](\.[0-9]+)+' | cut -c2-)" echo "Installing OpenCV" $version mkdir OpenCV cd OpenCV echo "Removing any pre-installed ffmpeg and x264" sudo apt-get -qq remove ffmpeg ..

Maximum Contiguous Subsequence Sum(MCSS) 알고리즘 분석

Maximum Contiguous Subsequence Sum(MCSS) 알고리즘 분석 Maximum Contiguous Subsequence Sum(MCSS) - n개의 정수 $a_1, a_2, \ldots, a_n$ 이 주어졌을 때, 연속적인 부분 수열의 합 $\sum_{k=i}^{j} a_k$ 이 최대가 되는 구간 (i, j)와 그 구간의 합을 계산하는 문제. 5 -7 2 3 -4 5 2 -7 8 -7 $\sum_{k=3}^{9} a_k = 9$ MCSS 알고리즘 (Time complexity : O($n^3$))1234567891011121314151617181920212223unsigned long int mcssN3(int a[], int n, int *start, int *end){ int ..

[칵테일 추천] Bar에서 가볍게 마시기 좋은 칵테일 - 1탄

[칵테일 추천] Bar에서 가볍게 마시기 좋은 칵테일 - 1탄 추천 이유 Bar에 가면 메뉴판을 빼곡히 채우고 있는 아스트랄한 메뉴들과 글로만 되어 있는 설명 때문에 칵테일 선택에 애를 먹는 경우가 많이 있다. 칵테일은 사람마다 선호하는 타입이 다르기 때문에 내가 좋아하는 타입을 선택한다. 사람들이 고민하다가 유명 칵테일인 마티니를 시키는 경우가 많은데, 마티니를 마셔보지 않은 사람이라면 추천하지 않는다. 마티니는 칵테일의 왕이라고 불리는 칵테일인데 진과 드라이버무스만의 조합이기 때문에 진의 특유의 향과 알콜 향이 많이 난다.(저가형 진을 사용해 마티니를 만든다면 더욱 더 ㅜㅜ, 과일이나 종자계 리큐르를 혼합하여 개량한 마티니들은 맛있으니까 제외) 그럼 어떤 칵테일을 선택해야 할까?제일 좋은 방법은 바텐..

카테고리 없음 2015.08.05

[Python 함수] 함수 (Function) - 1

[Python 함수] 함수 (Function) - 1 함수(Function) 간단히 말해서 프로그래밍에서 함수는 코드를 묶어 놓은 것이다. 프로그래밍을 하다보면 중복되는 코드가 많이 발생한다. 그 중복되는 코드를 하나의 함수로 정의하고 가져다 쓰면 많은 중복을 줄일 수 있다. 함수는 입력 값과 리턴 값을 가진다. 입력 값과 리턴 값은 없어도 함수지만, 대부분의 함수는 입력 값에 대한 리턴 값이 존재하게 구현된다. - 함수의 구조123456# 입력인자와 반환값은 있을 수도 없을 수도 있다.def 함수명(입력인자1, 입력인자2...): ... return 반환값cs - 함수의 사용123456789101112131415161718192021# 입력 값이 없는 함수def say(): return 'hello' ..

아카이브/Python 2015.07.19