해시 [Hash] 해시 함수(hash function)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다. 그 용도 중 하나는 해시 테이블이라는 자료구조에 사용되며, 매우 빠른 데이터 검색을 위한 컴퓨터 소프트웨어어 널리 사용된다. 해시 함수는 큰 파일에서 중복되는 레코드를 찾을 수 있기 때문에 데이터베이스 검색이나 테이블 검색의 속도를 가속할 수 있다. 저장된 키와 값을 이루는것을 테이블이라고 하는데 이중에 키에 해당하는 값을 직접 산술적인 연산을 적용하여 항목이 저장되어 있는 테이블의 주소를 계산하여 항목에 접근하기가 용이하게 만드는 작업이라고 할 수 있습니다. (사전을 생각해보면 적당한..
프로그래밍 관련
연결 리스트 (Linked List) 연결 리스트, 링크드 리스트(linked list)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다. 이름에서 말하듯이 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당하게 된다. 연결 리스트의 종류로는 단일 연결 리스트, 이중 연결 리스트 등이 있다. 연결 리스트는 늘어선 노드의 중간지점에서도 자료의 추가와 삭제가 O(1)의 시간에 가능하다는 장점을 갖는다. 그러나 배열이나 트리 구조와는 달리 특정 위치의 데이터를 검색해 내는데에는 O(n)의 시간이 걸리는 단점도 갖고 있다. 단일 연결 리스트(Single Linked List) 먼저 리스트를 이해하기 위해서는 포..
재귀(Recursion) 재귀(再歸, Recursion)는 수학이나 컴퓨터 과학 등에서 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻한다. 주로 이 방법은 함수에 적용한 재귀 함수(Recursion Function)의 형태로 많이 사용된다. 또 사진이나 그림 등에서 재귀의 형태를 사용하는 경우도 있다. 즉, 자기 자신을 반복하여 호출한다고 보면 쉬울 것 같습니다. #include using namespace std; void RecursiveFunction(int num) { if (num >= 10) { cout
빅-오 표기법 (Big-Oh Natation) - 점근 표기법(Aasymptotic notation) 빅-오 표기법 (Big-O Natation) 계산 복잡도 이론에서 사용되는 점근 표기법. 컴퓨터 과학에서는 주로 입력 데이터의 크기와 알고리즘의 소요 시간 또는 메모리의 상관관계를 나타내지만, 엄밀히는 임의의 함수에 대하여 "함수의 입력값(정의역의 원소)이 커짐에 따라 그 출력값(그 원소의 상)이 얼마나 빠르게 커지는가"를 표현한다. 점근 표기법(asymptotic notation) 점근 표기법(asymptotic notation)은 어떤 함수의 증가 양상을 다른 함수와의 비교로 표현하는 수론과 해석학의 방법이다. 알고리즘의 복잡도를 단순화할 때나 무한급수의 뒷부분을 간소화할 때 쓰인다. 찾아보니 빅-오..
자료구조에 이해 자료구조(資料構造, 영어: data structure)는 전산학에서 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다. 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다. 이러한 자료구조의 선택문제는 대개 추상적 자료구조의 선택으로부터 시작하는 경우가 많다. 효과적으로 설계된 자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 수행하도록 해준다. 자료구조 분류 자료구조는 크게 자료형의 따라 분류하는 단순 구조와 자료 간 관계가 1 대 1인 선형 구조, 1 대 다 혹은 다 대 다 구조인 비선형 구조, 마지막으로 파일 구조가 있습니다. [구현] 배열 , 튜플 , 연결 리스트 , 환형 연결 리스트 , 이중 연결 리스트 , 환형 이중..
[행동 패턴] 명령 패턴 - Command [이미지 출처 : http://www.codeproject.com] 목적 요청 자체를 캡슐화하여 , 요청이 서로 다른 사용자를 매개변수로 만들고, 요청을 대기시키거나 로깅하며, 되돌릴 수 있는 연산을 지원하기 위해서 사용합니다. 활용 - 수행할 동작을 매개변수화 하고자 할때- 서로 다른 시간에 요청을 명시하고, 저장하며, 실행하고 싶을 때, - 실행 취소 기능을 지원하고 싶을 떄- 기본적인 연산의 조합으로 상위 수준의 연산을 써서 시스템을 구조화 시키고 싶을 때 장점 - 명령을 여러 개 조합해서 복합 명령을 만들 수 있습니다.- 새로운 Command 객체를 추가하기 쉽습니다. 단점 - 명령의 취소를 반복적으로 누적될 경우에 오류가 발생될 수 있습니다.- 취소가 ..
6. 주기성 및 부호 A. 부호 실함수 f에 대하여 적당한 상수k≠0을 잡을 때, f의 정의역에 속하는 임의의 x에 대하여 f\left(x\text+k\right)=f\left(x\right)f(x+k)=f(x)가 성립하면, ff를 주기함수라 하고, kk를 ff의 주기라 한다. 양인 최소주기는 기본주기라고 한다. 삼각함수는 모두 주기함수이며, \tan \thetatanθ, \cot \thetacotθ를 제외하면 기본주기는 2\pi2π이다. \tan \thetatanθ, \cot \thetacotθ의 기본주기는 \piπ이다. 2차원 평면에서 점 P의 x는 cos θ , y는 sin θ 값을 나타냅니다.그렇다면, 생각해볼때 2사분면에 있을때는 sin 값이 - , 4사분면에서는 cos 값이 -가 됩니다.흔히 ..
* 주의 - 이 게시물은 삼각함수에 대해 깊이 다루고 있지 않습니다.(얉게 .. 다루고 있습니다.) 사인, 코사인, 탄젠트 코시컨트에 대해서도 다루지 않습니다. 1. 삼각형이란? 일단, 삼각형이 무엇인지 다시한번 보도록 하겠습니다. 삼각형(三角形, 세모꼴)은 세 개의 점과 세 개의 선분으로 이루어진 다각형이다. 삼각형의 세 점을 꼭짓점(정점)이라 하고, 선분을 변(邊)이라고 한다. 성질 1. 세 각의 합은 180도이다. 단, 쌍곡면, 구면, 타원면 등에서는 이 법칙이 적용되지 않는다. 2. 삼각형의 어떤 각의 외각은 그 각을 제외한 다른 두 각의 합과 같다. 3. 그 어떤 삼각형도 어느 한 변의 길이가 나머지 두 변의 길이를 합한 것보다 길거나 같을 수 없다. 일단 쉽게 삼각형은 2개의 변으로 이루어진 ..