해시 - hash

해시 - hash 제대로 살펴봐야 겠다는 생각이 마구 들고 있다.Hash 함수는 임의의 길이를 가지는 데이터를 고정된 길이의 데이터로 맵핑하는 알고리즘이다. 해쉬 함수는 Hash(k) = V 로 표현할 수 있다. 함수 hash()에 K를 입력하면, 값 V가 출력된다. 이때 K가 같으면 항상 같은 V가 출력된다. 아래 그림은 해싱의 기본 개념을 묘사하...

Lv6. Priority Queue

Lv6. Priority QueuePriority Queue( 제출일 Priority Queue는 TOPN 데이터를 가져오기 위한 목적으로 널리 사용된다. Lucene(1,000,000 개의 정렬되지 않는 int 형 데이터가 있다. 이 중 가장 큰 값을 가지는 TOPN 개의 데이터를 저장하는 Queue를 유지할 수 있는 알고리즘을 작성해 보자. 1...

Tag를 이용한 관계맵 구현

Tag를 이용한 관계맵 구현joinc 를 운용해오면서, 각 문서들간의 관계를 그래프와 카테고리 형식으로 구성할 수 있을 것이라는 생각을 했습니다. 꽤 오래전 일이죠. 몇개의 아이디어들이 있었는데, 그중 TAG를 이용한 관계맵구성쪽 아이디어를 정리합니다.컨텐츠간의 관계를 맺어주기 위해서 생각하던 아이디어로, TAG를 기반으로 한 관계맵만들기에 대한 겁니다....

Lv.2 가장 짧은 거리 찾기

Lv.2 가장 짧은 거리 찾기검색엔진에서 "A B C"의 3개의 Term으로 검색을 하면, 검색결과와 함께 문서의 요약을 함께 출력한다. 이 문서의 요약은 검색어에 대한 highliting을 적용한다. 이 요약문은 다음과 같은 조건을 가져야 할 것이다. 1. 약 200byte 정도의 크기를 가진다. 1. Term 밀도를 계산한다. 즉 문서에서 3개의 Te...

Lv2. 약수찾기

Lv2. 약수찾기약수는 어떤 수를 나누었을 때 나머지가 0인 수를 말한다. 배수와 반대되는 개념이다. 만약 어떤 수의 약수가 1과 자기 자신 뿐이라면 그 수를 소수(인자로 숫자를 입력하면 해당 숫자에 대한 모든 약수를 리턴하는 프로그램을 만들라 1. f(12) = 1,2,3,4,6,12 1. 어떤 언어를 써도 상관없다. 1. 인자는 unsigned int...

yundream의 구현

yundream의 구현MakeTermScore의 인자값을 변화시키는 것으로 배열의 크기를 변화시킬 수 있다. 1. 첫번째 인자 2. 두번째 인자 MakeTermScorer(100, 2000) 이라면 0-2000에서 랜덤하게 100개의 숫자를 꺼내온다. 결과는 정렬되어서 리턴된다. 이 함수는 lucene(#include #include <...

자바하는놈의 구현

자바하는놈의 구현import java.util.LinkedList;import java.util.List;/ ScoreUnion.java Created on 2006년 10월 10일 (화), 오후 6 To change this template, choose Tools | Template Manager and open the template in the...

Lv5. 합집합/교집합 연산

Lv5. 합집합/교집합 연산다음과 같은 구조체를 가진 2개의 배열이 있다.struct Score{ int did; int score;} 이 두 개의 배열에 대해서 합집합 연산을 하는 코드를 작성한다. 다음과 같은 조건이 주어진다. 1. 배열은 did를 기준으로 정렬되어 있다. 1. 합집합연산은 did를 기준으로 한다. 1. 중복되는 did에 대해서는 두...

Lv4. 쓰레드 순서 지키기

Lv4. 쓰레드 순서 지키기Thread1, Thread2, Thread3, Thread4 이렇게 4개의 쓰레드가 있다. 이때 Thread1->Thread2->Thread3->Thread4->Thread1->Thread2... 이런식으로 순서대로 쓰레드(다음의 조건을 만족시켜야 한다. 1. C/C++ 로 작성 1. 바쁜대기 상태에 놓이면 안된다. 쓰레드 ...

shift하기 답변

shift하기 답변 a를 오른쪽으로 offset만큼 shift시킨다고 가정할 때 1. >> 연산을 하게 되면, 가장 왼쪽비트는 이전에 있던 비트값으로 채워진다. 1. 즉 음의 정수일 경우에만 >> 연산을 할경우 문제가 된다. 1. >> 연산을 한번 한다음, 가장 왼쪽비트를 0으로 채우고 1. 이제 offset - 1 만큼 쉬프트 하면 된다.int sh...