분류 전체보기
-
[Algorithm] Brute Force개발하면서/Algorithm,DS,PS 2010. 12. 3. 12:42
가장 간단한 알고리즘입니다. 만약 찾고자 하는 패턴은 ABTBA, 원본 텍스트는 AAABTABTBAB일 경우 아래 그림과 같이 비교를 합니다. 아래와 같은 방법으로 문자열을 찾습니다. 패턴첫글자와 원본을 비교하면서 일치가되는것을 찾습니다. 일치가 되었으면, 다음글자가 일치되는지 확인하고, 중간에 일치하지 않는다면 바로 다음칸으로 이동해서 다시 패턴 첫 글자부터 일치여부를 판단합니다. 구현이 간단하지만 비효율적인 문자열 검색 알고리즘 이네요. int main() { char str[12] = "AAABTABTBAB"; char pattern[5] = "ABTBA"; int i = 0; int j = 0; for (; i < 11; i++) { for (; j < 5; j++) { if (str[i+j] !..
-
[Algorithm] Binary Heap개발하면서/Algorithm,DS,PS 2010. 12. 2. 23:12
Heap 이란? complete binary tree이고, 부모 노드는 항상 자식 노드보다 크거나 같음을 만족하는 자료구조이다. 출처: http://code.cloudkaksha.org/binary-tree/types-binary-tree 위 사진은 binary tree의 3가지 타입을 보여준다. full binary tree는 잎 노드를 제외한 노드들의 자식 노드가 0개 혹은 2개인 트리를 말한다. complete binary tree는 마지막 level을 제외한 모든 level에 노드가 채워져 있고 마지막 level은 최소한 왼쪽으로 노드가 채워진 트리를 말한다. perfet binary tree는 잎노드를 제외한 모든 노드들의 자식 노드가 2개인 트리를 말한다. 노드의 개수는 2^n-1개 있다.(n..
-
[Algorithm] Binary tree개발하면서/Algorithm,DS,PS 2010. 12. 2. 22:56
이진트리란 ? 모든 노드의 자식노드가 2개 이상을 넘지 않는 트리를 말한다. 왼쪽자식노드는 부모노드의 값보다 작이야 하며 오른쪽 자식노드는 부모노드의 값보다 커야한다. 이진트리 의 종류 모든 레벨의 노드가 꽉 차있는 트리를 말한다. Full Binary Tree의 총 노드수는 2 ^ n -1 이다.(n은 마지막 레벨) 높이가 h인 트리의 경우 h-1까지는 모두 채워져있고 마지막 높이 h는 다 채워져있지는 않지만 왼쪽에서 오른쪽으로 순서대로 채워져있는 트리 이진트리를 순회하는 방법은 preorder, inorder, postorder가 있다. 루트 방문순서를 기준으로 이름이 붙여진것으로 이해하면 좋다 pre : 처음, in : 중간, post : 나 쓰레드 이진트리란 ? 이진트리를 구성하다보면 null 포..
-
[Algorithm] Tree 기초개념개발하면서/Algorithm,DS,PS 2010. 12. 2. 22:52
>다양한 트리를 배우기전에 트리에 나오는 명칭에 대해 알아보는 시간을 가져보자. node란 A, B, C, D, E, F, G, H, I, J, K, L처럼 데이터를 가지는 분기점을 말하고, node와 node사이의 연결선을 edge라 한다. B의 parent node는 A 이며, parent node가 없는 node를 root라하며 여기서는 A이다. B의 child는 E, F 이다. degree(차수)란 child node의 수를 말한다. A의 Degree는 3, C의 Degree는 1이다. leaf node란 child node를 가지지 않는 node로서, 여기선 K, L, F, G, M, I, J 를 말한다. B 의 subtree는 위 그림과 같이 E, K, L과 F 이다. level이란 root ..
-
Google calendar 팁개발하면서/etc 2010. 12. 1. 21:42
일정같은건 Google calendar를 사용하는데 어느날 켈린더를 연 상태에서 실수로 w를 눌렀더니.....와우~!! 단축키가 있었다니~!! 그래서 하나하나 누르면서 알아보기로 했습니다. ㅎㅎ w : 주간단위로 보기 m : 월간 단위로 보기 d : 일일 단위로 보기 r : reload s : 켈린더 환경설정 a : 등록한 일정들 모두 펼치기 x : 4일 단위로 보기 c : 일정 등록하기 j, n : 미래이동(ㅋㅋㅋㅋ) p,k : 과거이동 미래이동, 과거이동은 어떻게 표현할까......고민에 고민을 하다가 정했습니다. 눌러보시면 아실거에요. 검색해보니 이런게 있었군요......흑흑 calendar shortcuts http://www.google.com/support/calendar/bin/answer...
-
[패스트캣]1. 시작하기개발하면서/코드보면서 2010. 11. 24. 21:42
국내 오픈소스 검색엔진 Fastcat이 1차 개발이 완료되었습니다. 포스팅해야지 해야지 하다가 드디어 처음 시작하기를 하게되었네요. 이번 포스팅에서는 검색하는 방법에 대해 알아보겠습니다. 처음 sample Collection을 검색하기까지의 순서를 보겠습니다. 1. http://getfastcat.org 에 들어간후, 무료 다운로드를 클릭합니다. 2. 받은 파일을 압축을 풀고 폴더안에 start.cmd를 실행합니다. 검색서버가 실행됩니다. 3. http://localhost:8080/admin에 접속을 하고, Execute Job항목을 들어갑니다. 4. 전체 색인입니다. args에는 전체색인을할 Collection명을 입력합니다.(Join이 뭔지 세미나할때 들었는데 까먹었네요;;;) 5. 자~ 검색을 실..