<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Magical Dorothy</title>
		<link>http://d-story.net/</link>
		<description>Do anything what you want. Nobody care who you are.</description>
		<language>ko</language>
		<pubDate>Wed, 01 Jul 2009 01:58:21 +0900</pubDate>
		<generator>Textcube 1.7.7 : Con moto</generator>
		<item>
			<title>방학은 알차게..</title>
			<link>http://d-story.net/entry/%EB%B0%A9%ED%95%99%EC%9D%80-%EC%95%8C%EC%B0%A8%EA%B2%8C</link>
			<description>&lt;div class=&quot;imageblock dual&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1407648914.w242-h273.jpeg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;273&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1105271432.w242-h273.jpeg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;273&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;방학동안 놀면 뭐하나..&lt;br&gt;공부나 해야지~&lt;br&gt;&lt;br&gt;이번 방학의 목표는..!!&lt;br&gt;저 두권 먼저 마스터..ㅋㅋㅋㅋ&lt;br&gt;&lt;br&gt;아~ 요리 후 먹는 밥은 너무 맛있는 듯..ㅎㅎ&lt;br&gt;&lt;br&gt;이제 음식에 걸맞는 식기랑 담는 기법들좀 같이 공부해야지..ㅎㅎ&lt;br&gt;(다이어트 중인 현실의 모습은 우선순위를 아주 조금 내려놔야 겠당..ㅋ)&lt;br&gt;&lt;br&gt;생각해보니..&lt;br&gt;어디서 상자좀 구해다가 새싹이나 좀 길러볼까..!?&lt;br&gt;매번 사러 나가기도 귀찮고...&lt;br&gt;농약 걱정 안해도 되니 더 좋은건가!?..(꼼꼼히 씻기가 귀찮어..ㅜ_ㅜ)&lt;br&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/283</guid>
			<comments>http://d-story.net/entry/%EB%B0%A9%ED%95%99%EC%9D%80-%EC%95%8C%EC%B0%A8%EA%B2%8C#entry283comment</comments>
			<pubDate>Wed, 01 Jul 2009 01:54:14 +0900</pubDate>
		</item>
		<item>
			<title>방학 시작은 무난히..</title>
			<link>http://d-story.net/entry/%EB%B0%A9%ED%95%99-%EC%8B%9C%EC%9E%91%EC%9D%80-%EB%AC%B4%EB%82%9C%ED%9E%88</link>
			<description>허허허...&lt;br&gt;SP도 끝나고..&lt;br&gt;이제 기분좋게 방학을 시작.. ㅠ_ㅠ (감동..)&lt;br&gt;&lt;br&gt;숙제 다한 기념 스샷 한방....&lt;br&gt;&lt;br&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1226191317.w500-h437.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;437&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;흠.. 토탈 라인수 4203줄... ㅡ_ㅡ.......&lt;br&gt;어쩐지.. 손가락이 아프더라..&lt;br&gt;손가락 찜질이라도 해야징..&lt;br&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/282</guid>
			<comments>http://d-story.net/entry/%EB%B0%A9%ED%95%99-%EC%8B%9C%EC%9E%91%EC%9D%80-%EB%AC%B4%EB%82%9C%ED%9E%88#entry282comment</comments>
			<pubDate>Tue, 23 Jun 2009 01:04:32 +0900</pubDate>
		</item>
		<item>
			<title>Neural Net을 이용한 숫자인식 프로그램</title>
			<link>http://d-story.net/entry/Neural-Net%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%88%AB%EC%9E%90%EC%9D%B8%EC%8B%9D-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8</link>
			<description>인공지능 마지막 숙제...&lt;div class=&quot;imageblock right&quot; style=&quot;float: right; margin-left: 10px;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://d-story.net/attachment/1071569443.h&quot;&gt;&lt;img src=&quot;http://d-story.net/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; NumberSet.h&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock right&quot; style=&quot;float: right; margin-left: 10px;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://d-story.net/attachment/1102157058.c&quot;&gt;&lt;img src=&quot;http://d-story.net/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; NeuralNet.c&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock right&quot; style=&quot;float: right; margin-left: 10px;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://d-story.net/attachment/1007695254.hwp&quot;&gt;&lt;img src=&quot;http://d-story.net/image/extension/hwp.gif&quot; alt=&quot;&quot; /&gt; Neural Net.hwp&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;뭔가 새로운 분야였지만...&lt;br /&gt;막상.. 어찌 응용을 해야할지 ㅡ_ㅡ;;......&lt;br /&gt;이것과 시스템은 어떻게 연결 할 수 있을까 ㅡ_ㅡ.........&lt;br /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;math.h&gt;
#include &lt;time.h&gt;

#include &quot;NumberSet.h&quot;
TRAININGSET g_trainingSet[MAX_DATA]; // 트레이닝 데이터

// 전체 뉴런 개수 설정
#define INPUT_NEURON		32
#define HIDDEN_NEURON		20
#define OUTPUT_NEURON		10

// 인풋에서 히든, 히든에서 출력 레이어 그래프 (바이어스도 포함)
double g_weight_i2h[INPUT_NEURON+1][HIDDEN_NEURON];
double g_weight_h2o[HIDDEN_NEURON+1][OUTPUT_NEURON];

/* 내부 그래프용 노드 */
double g_inputs[INPUT_NEURON]  = {0,};
double g_hidden[HIDDEN_NEURON] = {0,};
double g_desire[OUTPUT_NEURON] = {0,};
double g_output[OUTPUT_NEURON] = {0,};

/* Unit Errors */
double g_err_output[OUTPUT_NEURON] = {0,};
double g_err_hidden[HIDDEN_NEURON] = {0,};

// 학습률 - c값
#define LEARN_RATE		0.2

// 시그모이드 함수 &amp; 편미분 함수
double sigmoid( double val )           { return (1.0 / (1.0 + exp(-val))); }
double sigmoidDerivative( double val ) { return ( val * (1.0 - val) ); }

// 랜덤한 가중치 부여
void RandomWeight( void ) {
	int hidden, input, out;
	#define RAND_WEIGHT	(((float)rand() / (float)RAND_MAX) - 0.5)

	for (input=0; input &lt; INPUT_NEURON+1; input++)
		for (hidden=0; hidden &lt; HIDDEN_NEURON; hidden++)
			g_weight_i2h[input][hidden] = RAND_WEIGHT;

	for (hidden = 0 ; hidden &lt; HIDDEN_NEURON+1 ; hidden++)
		for (out = 0 ; out &lt; OUTPUT_NEURON ; out++)
			g_weight_h2o[hidden][out] = RAND_WEIGHT;
}

// 각 뉴럴의 실제 계산 및 전달 (현재 뉴럴의 최종 아웃풋이 g_output에 저장됨)
void feedForward( void )
{
	double sum;
	int input, hidden, out;

	// 인풋에서 히든레이어 계산
	for (hidden=0; hidden &lt; HIDDEN_NEURON; hidden++)
	{
		// 각 뉴런의 inputs * weight의 총 합을 계산
		for (sum=.0, input=0; input &lt; INPUT_NEURON; input++)
			sum += g_inputs[input] * g_weight_i2h[input][hidden];

		sum += g_weight_i2h[INPUT_NEURON][hidden]; // 바이어스
		g_hidden[hidden] = sigmoid(sum); // 시그모이드 함수 적용
	}

	// 히든에서 출력레이어 계산
	for (out=0; out &lt; OUTPUT_NEURON; out++)
	{
		// 각 뉴런의 hidden * weight의 총 합을 계산
		for (sum=.0,hidden=0; hidden &lt; HIDDEN_NEURON; hidden++)
			sum += g_hidden[hidden] * g_weight_h2o[hidden][out];

		sum += g_weight_h2o[HIDDEN_NEURON][out]; // 바이어스
		g_output[out] = sigmoid( sum ); // 시그모이드 함수 적용
	}
}

// 오차 수집후 가중치 조율
void backPropagate( void )
{
	int input, hidden, out;

	// 출력의 에러 콜렉팅
	for (out=0; out &lt; OUTPUT_NEURON; out++)

		// Desire 값과 실제 나온 값의 차를 결과의 미분값으로 곱함
		g_err_output[out] = (g_desire[out] - g_output[out]) * sigmoidDerivative(g_output[out]);

	// 히든의 에러 콜렉팅
	for (hidden=0; hidden &lt; HIDDEN_NEURON; hidden++)
	{
		g_err_hidden[hidden] = .0;

		// 먼저 출력의 에러를 가중치를 곱하여 모두 합산
		for (out=0; out &lt; OUTPUT_NEURON; out++)
			g_err_hidden[hidden] += g_err_output[out] * g_weight_h2o[hidden][out];

		// 출력에서와 같은 방식으로 합산된것을 히든의 결과값의 미분값을 넣음
		g_err_hidden[hidden] *= sigmoidDerivative( g_hidden[hidden] );
	}

	// 출력의 가중치 조정
	for (out=0; out &lt; OUTPUT_NEURON; out++)
	{
		// 새로운 가중치는 출력의 에러에 히든의 값을 곱하여 LEARN RATE 만큼 적용하여 더함
		for (hidden=0; hidden &lt; HIDDEN_NEURON; hidden++)
			g_weight_h2o[hidden][out] += LEARN_RATE * g_err_output[out] * g_hidden[hidden];

		g_weight_h2o[HIDDEN_NEURON][out] += LEARN_RATE * g_err_output[out]; // 바이어스
	}

	// 히든의 가중치 조정
	for (hidden=0; hidden &lt; HIDDEN_NEURON; hidden++)
	{
		// 출력과 동일 히든의 에러에 실제넣은값을 곱하여 LEARN RATE 만큼 적용하여 더함
		for (input=0; input &lt; INPUT_NEURON; input++)
			g_weight_i2h[input][hidden] += LEARN_RATE * g_err_hidden[hidden] * g_inputs[input];

		g_weight_i2h[INPUT_NEURON][hidden] += LEARN_RATE * g_err_hidden[hidden]; // 바이어스
	}
}

// 가장 정답에 가까운거 집어내기
int select( double *array )
{
	int i, index=0;
	double max = array[index];

	for (i=1; i &lt; OUTPUT_NEURON; i++) // 답은 찾아야 할테니..
		if (array[i] &gt; max)
			max = array[i], index = i;

	return index;
}

// 실제 프로그램 시작
int main(void)
{
	double err;
	int i,j, training=0, loop=0;
	unsigned int temp;
	char test[33] = &quot; 11 1  11  1   1   1  1  1  1111&quot;; // 임의의 문자..

	srand( (unsigned) time(NULL) );
	RandomWeight(); // 랜덤한 가중치 부여

	// 트레이닝 데이터 초기화
	for (i=0; i&lt;10; i++) {
		for (j=0; j&lt;MAX_TYPES; j++) {
			g_trainingSet[i*MAX_TYPES+j].RealNum = i;
			g_trainingSet[i*MAX_TYPES+j].data = char2bit(Number[i][j]);
			for (temp=0; temp&lt;INPUT_NEURON; temp++)
				g_trainingSet[i*MAX_TYPES+j].desire[temp] = (temp == i) ? 1 : 0;
		}
	}

	// 훈련 시작
	for (loop=0; loop &lt; 0x0000ffff; loop++)
	{
		// 한바퀴 돌았으면 트레이닝 데이터 섞기
		if (++training == MAX_DATA)
			for (training=0, i=MAX_DATA-1; i&gt;0; i--)
				swap(&amp;g_trainingSet[i], &amp;g_trainingSet[rand()%i]);

		for (i=0,temp=g_trainingSet[training].data; i&lt;INPUT_NEURON; i++,temp&gt;&gt;=1)
			g_inputs[i] = temp &amp; MASK1; // 인풋 비트 연결

		for (i=0; i&lt;OUTPUT_NEURON; i++) // 원하는 출력값 설정
			g_desire[i] = g_trainingSet[training].desire[i];

		feedForward(); // 계산 시작
		backPropagate(); // 가중치 재계산

		// 에러율 계산 (필요하면 최종 err를 쓰면 됨)
		for (err=.0, i=0; i &lt; OUTPUT_NEURON; i++)
			err += pow(g_trainingSet[training].desire[i] - g_output[i], 2);
		err *= 0.5;
	}

	for (temp= char2bit(test), i=0; i&lt;INPUT_NEURON; i++, temp &gt;&gt;= 1)
		g_inputs[i] = temp &amp; MASK1; // 입력값 연결

	feedForward();
	printf(&quot;실제값: %d, 추정값: %d\n&quot;, 2, select(g_output));
	return 0;
}
&lt;/textarea&gt;</description>
			<category>Homework</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/281</guid>
			<comments>http://d-story.net/entry/Neural-Net%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%88%AB%EC%9E%90%EC%9D%B8%EC%8B%9D-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8#entry281comment</comments>
			<pubDate>Wed, 17 Jun 2009 14:41:30 +0900</pubDate>
		</item>
		<item>
			<title>쓰레기 File Lock 구현..</title>
			<link>http://d-story.net/entry/%EC%93%B0%EB%A0%88%EA%B8%B0-File-Lock-%EA%B5%AC%ED%98%84</link>
			<description>SP 과제의 내용중 하나인....&lt;br /&gt;File Lock 구현하라는거.. ㅡ_ㅡ....&lt;br /&gt;(세마포어는 찝찝해서 안쓰긴 했지만....... 통지메세지 걸어버리는것도 반칙인가 ㅡ_ㅡ?!..)&lt;br /&gt;코드에 시그널 처리부분을 날림제작해서.. 레이스 컨디션이 생기지만.. 일단 패스..&lt;br /&gt;(시연시 문제 없었으니 조용히 넘어가면 되는거임 ㅡ_ㅡ......)&lt;br /&gt;&lt;br /&gt;그리고.. goto가 얼마나 편리한데.. PL시간엔 자꾸 욕을하니.. ㅡ_ㅡ..&lt;br /&gt;(그래도 사용하는 센스..)&lt;br /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;#define _GNU_SOURCE
#include &lt;stdio.h&gt;
#include &lt;dirent.h&gt;

#include &quot;db.h&quot;

// 시그널 부분 초기화
void db_lock_init( void )
{
	struct sigaction	act;

	// SIGIO 처리
	act.sa_sigaction = VoidHandler;
	sigemptyset(&amp;act.sa_mask);
	act.sa_flags = 0;
	sigaction(SIGIO, &amp;act, NULL);

	// SIGALRM 처리 (혹시모를 상황에 대비 - 0 이면 사용 안함)
#if DB_LOCK_TIMEOUT &gt; 0
	act.sa_sigaction = VoidHandler;
	sigemptyset(&amp;act.sa_mask);
	act.sa_flags = 0;
	sigaction(SIGALRM, &amp;act, NULL);
#endif
}

// Lock을 실제로 거는 부분
int db_lock( IN char *path, DWORD offset, DWORD size )
{
	pid_t			pid;
	DIR				*pDir;
	struct dirent	*pDirInfo;
	char			buffer[64];
	int				fd; // Lock 풀린거 감지용

	DWORD			offset_i, size_i;

	// 오프셋별 접근을 막기 위한 초기 작업
	sprintf(buffer, &quot;%s.lck&quot;, path);
	mkdir(buffer, 0700);
start:
	if ((pDir=opendir(buffer)) == NULL)
		return -1;

	sprintf(buffer, &quot;%s/%d_%d&quot;, buffer, offset, size);

	// 만일 이미 파일이 있다면.. 누군가 쓰는거..
	if ((fd=open(buffer, O_WRONLY | O_CREAT | O_EXCL, 0600)) == -1) {
		closedir(pDir);
		goto Lock;
	}

	// 파일이 없어도 겹치는 부분이 있는지 확인해 봐야함
	// Lock의 범위 검증 시작
	while ((pDirInfo = readdir(pDir)) != NULL)
	{
		// 디렉토리 건너뛰고
		if (strcmp(pDirInfo-&gt;d_name, &quot;.&quot;) == 0 ||
			strcmp(pDirInfo-&gt;d_name, &quot;..&quot;) == 0)
			continue;

		sscanf(pDirInfo-&gt;d_name, &quot;%u_%u&quot;, &amp;offset_i, &amp;size_i);

		//  방금 만든것도 건너뛰고
		if (offset_i == offset &amp;&amp; size_i == size)
			continue;

		// 범위가 겹친다면 문제가 좀 있죠..
		if ( (offset_i &lt;= offset &amp;&amp; offset &lt; offset_i + size_i) ||
			 (offset_i &lt;= offset+size-1 &amp;&amp; offset+size-1 &lt; offset_i + size_i) )
		{
			closedir(pDir);
			close(fd);
			unlink(buffer);
			goto Lock;
		}
	}

	// Lock이 성공적으로 걸림
	// 만일 프로세스가 Lock을 걸어버리고 죽는다면..
	// pid 확인해서 Lock 정리 작업	
	closedir(pDir);
	pid = getpid();
	write(fd, &amp;pid, sizeof(pid_t));
	return close(fd);

Lock: // Lock이 걸린 경우에 대한 처리 (Lock이 풀림을 기다림)
      // 반드시 생각해야 하는것..!! fd는 제한되어있으니 관리바람

	sprintf(buffer, &quot;%s.lck&quot;, path);
	fd = open(buffer, O_RDONLY);
	fcntl(fd, F_NOTIFY, DN_DELETE);

	// 타임아웃이 설정되어 있다면 알람으로 강제로 깨움
#if DB_LOCK_TIMEOUT &gt; 0
	alarm(DB_LOCK_TIMEOUT);
#endif

	pause();
	close(fd);

	goto start; // 깨어나면.. 다시 Lock을 시도
}

// Lock을 해제
int db_unlock( IN char *path, DWORD offset, DWORD size )
{
	int		fd;
	pid_t	pid;
	char	buffer[64];

	fprintf(stderr, &quot;[DB] File unlocking 시작.\n&quot;);
	sprintf(buffer, &quot;%s.lck/%d_%d&quot;, path, offset, size);

	if (access(buffer, F_OK) != 0)
		return -1;

	if ((fd=open(buffer, O_RDONLY)) == -1)
		return -1;

	if (read(fd, &amp;pid, sizeof(pid_t)) != sizeof(pid_t)) {
		close(fd);
		return -1;
	}

	close(fd);

	if (pid != getpid())
		return -1;

	return unlink(buffer);
}
&lt;/textarea&gt;</description>
			<category>Homework</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/280</guid>
			<comments>http://d-story.net/entry/%EC%93%B0%EB%A0%88%EA%B8%B0-File-Lock-%EA%B5%AC%ED%98%84#entry280comment</comments>
			<pubDate>Sat, 13 Jun 2009 13:17:37 +0900</pubDate>
		</item>
		<item>
			<title>지하철 최단경로</title>
			<link>http://d-story.net/entry/%EC%A7%80%ED%95%98%EC%B2%A0-%EC%B5%9C%EB%8B%A8%EA%B2%BD%EB%A1%9C</link>
			<description>그냥 정확하게 숙제의 요구조건만 맞춘것.. ㅡ_ㅡ..&lt;br /&gt;다익스트라 알고리즘으로 최단경로의 시간 계산만 함..&lt;br /&gt;교수님이 아예 복잡한 상황을 만들어내는 인풋은 안준다고 했으니..&lt;br /&gt;고런 인풋은 쌩깜.. (대략 허접함..)&lt;br /&gt;&lt;br /&gt;숏코딩 할까말까 고민하다가..&lt;br /&gt;결국 이상한 코드가 되어버림 ㅡ_ㅡ.....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;malloc.h&gt;

#define BYTE unsigned char
#define WORD unsigned short

// 태그를 넣으면 인덱스 나옴
#define TTOI(tag) IndexTag[tag]

WORD *IndexTag; // 바로 참조 가능하도록한 인덱스

typedef union Tag {
	WORD val;
	struct {
		WORD Line:4;
		WORD stNo:6;
		WORD junk:6;
	};
} Tag;
Tag* SetTag(Tag *t, int l, int n) { t-&gt;Line=l;t-&gt;stNo=n;t-&gt;junk=0x00;return t; }

BYTE** CreateSubwayMap(int IndexSize, int LineSize, Tag* Line, int TranSize, Tag** Tran, int weight)
{
	int i, j;
	Tag tag1, tag2;
	BYTE** a; // 만들어질 공간

	// 배열 공간 잡기 (실제 존재하는 노선에 대해서만 생성됨)
	a = (BYTE**) malloc(sizeof(BYTE*) * IndexSize);
	for (i=0; i&lt;IndexSize; i++)
	{
		a[i] = (BYTE*) malloc(sizeof(BYTE) * IndexSize);
		memset(a[i], 0xFF, IndexSize); a[i][i] = 0x00;
	}

	// 배열에 기본 링크 연결하기 (같은 노선)
	for (i=0; i&lt;LineSize; i++) // 일단은 라인수 만큼
	{
		for (j=1; j&lt;Line[i].stNo; j++) // 역 개수 만큼..
		{
			tag1 = tag2 = Line[i];
			tag1.stNo = j; tag2.stNo = j-1;
			a[TTOI(tag2.val)][TTOI(tag1.val)] = a[TTOI(tag1.val)][TTOI(tag2.val)] = 1;
		}
	}

	// 환승역 연결하기
	for (i=0; i&lt;TranSize; i++)
		a[TTOI(Tran[i][0].val)][TTOI(Tran[i][1].val)] = a[TTOI(Tran[i][1].val)][TTOI(Tran[i][0].val)] = weight;

	return a;
}

// 편리한 참조를 위한 인덱싱 배열 생성
void CreateIndexTable(int TagSize, int LineSize, Tag* Line)
{
	Tag tag;
	int i, j, k;

	IndexTag = (WORD*) calloc(TagSize, sizeof(WORD));

	for (k=0, i=0; i&lt;LineSize; i++) // 일단은 라인수 만큼
		for (j=0; j&lt;Line[i].stNo; j++) // 역 개수 만큼..
			IndexTag[SetTag(&amp;tag, Line[i].Line, j)-&gt;val] = k++;	// 이렇게 하면 Tag를 넣으면 인덱스가 나옴
}

int main(void)
{
	int TotalLines, TotalTransfer, TotalInput, weight;
	int IndexSize=0, TagSize=0;
	int i, j, k, p, t1, t2, start, min;
	int *leng, *Y; // 정점까지의 거리 및 확정 노드

	Tag tag1, tag2;
	Tag *LineInfo, **TranInfo; // 파일로 부터 읽어들인 기본자료들..
	BYTE** graph; // 전역 작업 공간

	FILE *fp = fopen(&quot;input.txt&quot;, &quot;rt&quot;);

	// 일단은 노선 정보 먼저 읽어놓고 작업크기 계산
	fscanf(fp, &quot;%d&quot;, &amp;TotalLines);
	LineInfo = (Tag*) calloc(TotalLines, sizeof(Tag));

	for (i=0; i&lt;TotalLines; i++)
	{
		fscanf(fp, &quot;%d %d&quot;, &amp;t1, &amp;t2);
		SetTag(&amp;LineInfo[i], t1-1, t2);
		IndexSize += t2;

		if (TagSize &lt; LineInfo[i].val)
			TagSize = LineInfo[i].val;
	}

	// 환승역 정보 보관 (다익스트라 사용시 그래프 구조가 바뀌게 되어서 기본정보 저장)
	fscanf(fp, &quot;%d&quot;, &amp;TotalTransfer);
	TranInfo = (Tag**) calloc(TotalTransfer, sizeof(Tag*));

	for (i=0; i&lt;TotalTransfer; i++)
	{
		TranInfo[i] = (Tag*) calloc(2, sizeof(Tag));
		fscanf(fp, &quot;%d %d&quot;, &amp;t1, &amp;t2);
		TranInfo[i][0] = *SetTag(&amp;tag1, t1-1, t2-1);
		fscanf(fp, &quot;%d %d&quot;, &amp;t1, &amp;t2);
		TranInfo[i][1] = *SetTag(&amp;tag2, t1-1, t2-1);
	}

	// 인덱스 생성해두고
	CreateIndexTable(TagSize, TotalLines, LineInfo);

	fscanf(fp, &quot;%d&quot;, &amp;TotalInput);
	for (i=0; i&lt;TotalInput; i++)
	{
		fscanf(fp, &quot;%d&quot;, &amp;weight); // 환승 가중치

		fscanf(fp, &quot;%d %d&quot;, &amp;t1, &amp;t2);
		start = TTOI(SetTag(&amp;tag1, t1-1, t2-1)-&gt;val);

		// 작업공간을 만들기
		graph = CreateSubwayMap(IndexSize, TotalLines, LineInfo, TotalTransfer, TranInfo, weight);

		// 보조 작업용 배열 선언 및 초기화 (다익스트라 알고리즘의 시작)
		Y = (int*) calloc(IndexSize, sizeof(int));
		leng = (int*) malloc(sizeof(int)*IndexSize);
		for (j=0; j&lt;IndexSize; j++) leng[j] = 0xff;

		// 실제 다익스트라 알고리즘 시작
		for (leng[start]=0, j=0; j&lt;IndexSize; j++)
		{
			for (min=0xff, k=0; k&lt;IndexSize; k++)
				if (Y[k]==0 &amp;&amp; leng[k]&lt;min)
					min = leng[p=k];

			Y[p]=1; // 최소인 정점을 확정한다

			// p를 경유해서 k에 이르는 거리가 지금까지의 최단경로보다 작으면 갱신
			for (k=0; k&lt;IndexSize; k++)
				if ((leng[p]+graph[p][k]) &lt; leng[k])
					leng[k] = leng[p] + graph[p][k];
		}

		fscanf(fp, &quot;%d %d&quot;, &amp;t1, &amp;t2);
		printf(&quot;%d\n&quot;, leng[TTOI(SetTag(&amp;tag1, t1-1, t2-1)-&gt;val)]);
		for (j=0; j&lt;IndexSize; j++) free(graph[j]); free(graph); free(leng); free(Y);
	}

	return 0;
}
&lt;/textarea&gt;</description>
			<category>Homework</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/278</guid>
			<comments>http://d-story.net/entry/%EC%A7%80%ED%95%98%EC%B2%A0-%EC%B5%9C%EB%8B%A8%EA%B2%BD%EB%A1%9C#entry278comment</comments>
			<pubDate>Sat, 06 Jun 2009 16:14:41 +0900</pubDate>
		</item>
		<item>
			<title>Lock 만들기 성공</title>
			<link>http://d-story.net/entry/LOCK-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EC%84%B1%EA%B3%B5</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1137922396.w500-h312.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;312&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;멀쩡히 쓰라고 만들어둔 Lock을 왜 쓰지 말란거지 ㅡ_ㅡ.....&lt;br&gt;세마포어로 하려다가......&lt;br&gt;왠지 안배운거 쓰면 점수 안줄거 같아서........&lt;br&gt;최대한 책에 있는것만 써서 구현......OTL....&lt;br&gt;&lt;br&gt;뮤텍스 처럼 여러게가 접근하면..&lt;br&gt;나머지는 대기하다가.. Lock이 풀리는 순간 다른 Lock함수가 작동하게끔 구현..&lt;br&gt;무식 무한루프가 아니라.. cpu 점유도 안하니 착하군....&lt;br&gt;&lt;br&gt;Offset 참조해서 영역 겹쳐서 Lock이 걸린 경우까지 처리 완료...b&lt;br&gt;Timeout도 줘서.. 설정해둔 시간 이상으로 Lock 안풀리면 재시작 과정도 추가..&lt;br&gt;비정상적인 Lock 설정후 죽어버리는 프로세스들을 위한..&lt;br&gt;메인 DB에서 Lock의 검증을 하는 루틴도 추가 완료.......ㅠ_ㅠ&lt;br&gt;&lt;br&gt;완전...... 노가다자나......ㅜ_ㅜ&lt;br&gt;(그냥 세마포어 쓸껄......ㅜ_ㅜ)</description>
			<category>Computer</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/277</guid>
			<comments>http://d-story.net/entry/LOCK-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EC%84%B1%EA%B3%B5#entry277comment</comments>
			<pubDate>Tue, 26 May 2009 00:44:32 +0900</pubDate>
		</item>
		<item>
			<title>언제나 배고픈 현실</title>
			<link>http://d-story.net/entry/%EC%96%B8%EC%A0%9C%EB%82%98-%EB%B0%B0%EA%B3%A0%ED%94%88-%ED%98%84%EC%8B%A4</link>
			<description>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1107673747.w500-h375.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;375&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;배고파..ㅡ_ㅜ&lt;br&gt;냉장고에 먹을거 없나 찾다가..&lt;br&gt;새우나 구워먹음..&lt;br&gt;&lt;br&gt;간단하게 소금구이에..&lt;br&gt;전복 개우랑 고추씨기름으로 마무리 굽기 한것..&lt;br&gt;(생각보다 맛있군..)&lt;br&gt;&lt;br&gt;집이 새우냄새로 뒤덥혔어......&lt;br&gt;&lt;/div&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/275</guid>
			<comments>http://d-story.net/entry/%EC%96%B8%EC%A0%9C%EB%82%98-%EB%B0%B0%EA%B3%A0%ED%94%88-%ED%98%84%EC%8B%A4#entry275comment</comments>
			<pubDate>Sun, 24 May 2009 17:21:56 +0900</pubDate>
		</item>
		<item>
			<title>SP 아주 미치겠다</title>
			<link>http://d-story.net/entry/SP-%EC%95%84%EC%A3%BC-%EB%AF%B8%EC%B9%98%EA%B2%A0%EB%8B%A4</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1075822697.w500-h340.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;340&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;쓰레드를 쓰지 말라니....!!!!!&lt;br&gt;이건 무슨 날벼락 같은 소리인가..!!!!!!!!&lt;br&gt;구조 새로 짜라는거임 뭐임....ㅠ_ㅠ&lt;br&gt;진작 예기해 주던가...ㅠ_ㅠ........&lt;br&gt;&lt;br&gt;아놔 이거 어떻게해....!!!!!&lt;br&gt;ㅅㅂㄹㅁ..........&lt;br&gt;입출력 동시 진행은 이미 쓰레드로 마음을 굳혔는데...ㅠ_ㅠ......&lt;br&gt;아놔아놔아놔!!!!..............................&lt;br&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/274</guid>
			<comments>http://d-story.net/entry/SP-%EC%95%84%EC%A3%BC-%EB%AF%B8%EC%B9%98%EA%B2%A0%EB%8B%A4#entry274comment</comments>
			<pubDate>Mon, 18 May 2009 23:12:13 +0900</pubDate>
		</item>
		<item>
			<title>주말동안 한게 없군</title>
			<link>http://d-story.net/entry/%EC%A3%BC%EB%A7%90%EB%8F%99%EC%95%88-%ED%95%9C%EA%B2%8C-%EC%97%86%EA%B5%B0</link>
			<description>매일 책좀 읽어야지 라고 생각하지만..&lt;br&gt;주말엔 이상하게 극도로 나태해지내 ㅡ_ㅡ..&lt;br&gt;(하긴 주중에도 나태하지만.. 빈둥빈둥..)&lt;br&gt;&lt;br&gt;하루종일 우분투 테스트하고..&lt;br&gt;SP작업폴더와 Window사이의 연동때문에 죽어라 고생하고..&lt;br&gt;(뭔가 해결은 됬지만..... 그래도..... 완벽하지 않아..ㅠ_ㅠ)&lt;br&gt;&lt;br&gt;실제로 프로그램 구현하다보니...&lt;br&gt;복병들이 다수 출현중이고.....&lt;br&gt;(아무래도.. 뭔가 통신의 공통 인터페이스를 하나 만들어야 할듯)&lt;br&gt;C++을 쓰지 말라고 한게.. 가장 충격이지만..&lt;br&gt;(이렇게 구조가 커지면 관리가 안되자나..ㅠ_ㅠ)&lt;br&gt;&lt;br&gt;아무튼.. 주말은 그냥 날라감..&lt;br&gt;한것도 없고.. 공부도 안하고..&lt;br&gt;수요일은 퀴즈인데.. 공부도 안하고..&lt;br&gt;(그나마 금요일에 알고리즘 지하철 프로그램을 다 짜둔게 위안이 되는군..)&lt;br&gt;&lt;br&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1401570007.w500-h312.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;312&quot; width=&quot;500&quot; /&gt;&lt;p class=&quot;cap1&quot;&gt;이거라도 다해둔게 어디야.. ㅠ_&lt;/p&gt;&lt;/div&gt;&lt;br&gt;자기전에 TCP공부나 하자... OTL..&lt;br&gt;&lt;br&gt;월요일부터는 도서관에 출석도장 100% 찍을꺼야..ㅠ_ㅠ&lt;br&gt;(그동안은 학생증이 없어서 안간거야..!! &amp;lt;- 임시학생증은 폼이냐..)&lt;br&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/273</guid>
			<comments>http://d-story.net/entry/%EC%A3%BC%EB%A7%90%EB%8F%99%EC%95%88-%ED%95%9C%EA%B2%8C-%EC%97%86%EA%B5%B0#entry273comment</comments>
			<pubDate>Sun, 17 May 2009 21:22:23 +0900</pubDate>
		</item>
		<item>
			<title>우분투 9.04 나왔군</title>
			<link>http://d-story.net/entry/%EC%9A%B0%EB%B6%84%ED%88%AC-904-%EB%82%98%EC%99%94%EA%B5%B0</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1229989299.w500-h375.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;375&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;로그인 화면도 좀 바뀌었는데...&lt;br&gt;뭔가...... 이상해 ㅡ_ㅡ;;..&lt;br&gt;&lt;br&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1284113870.w500-h375.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;375&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;대략.. 큰 변화는 못느끼겠고..&lt;br&gt;어찌됬든.. SP때문에라도 이제부터는 리눅스 작업이 많아지겠군.. ㅜ_ㅜ&lt;br&gt;Cygwin, MSYS 는 왜 시스템 프로그래밍을 완벽 지원하지 못하냐고..ㅠ_ㅠ....&lt;br&gt;윈도에도 있는 개념들인데...ㅜ_ㅜ&lt;br&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/272</guid>
			<comments>http://d-story.net/entry/%EC%9A%B0%EB%B6%84%ED%88%AC-904-%EB%82%98%EC%99%94%EA%B5%B0#entry272comment</comments>
			<pubDate>Sun, 17 May 2009 12:07:32 +0900</pubDate>
		</item>
		<item>
			<title>얼마나 아팠을까</title>
			<link>http://d-story.net/entry/%EC%96%BC%EB%A7%88%EB%82%98-%EC%95%84%ED%8C%A0%EC%9D%84%EA%B9%8C</link>
			<description>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/AJgaiZYFiMQ&amp;amp;hl=ko&amp;amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/AJgaiZYFiMQ&amp;amp;hl=ko&amp;amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br&gt;&lt;br&gt;몇년전에.. 탁구 대회에서 찍은 동영상..&lt;br&gt;대략 4년도 더 전임..&lt;br&gt;&lt;br&gt;그런데..&lt;br&gt;&lt;br&gt;얼마나 아팠을까..ㅡ_ㅜ..ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ&lt;br&gt;&lt;br&gt;아놔.. 여자분껜 죄송 ㅡ_ㅡ..&lt;br&gt;누구신진 모르겠지만 ㅡ_ㅡ..ㅋㅋㅋㅋㅋㅋ&lt;br&gt;&lt;/div&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/271</guid>
			<comments>http://d-story.net/entry/%EC%96%BC%EB%A7%88%EB%82%98-%EC%95%84%ED%8C%A0%EC%9D%84%EA%B9%8C#entry271comment</comments>
			<pubDate>Fri, 15 May 2009 22:34:23 +0900</pubDate>
		</item>
		<item>
			<title>Merry Christmas Mr. Lawrence -FYI</title>
			<link>http://d-story.net/entry/Merry-Christmas-Mr-Lawrence-FYI</link>
			<description>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/attach/1/1126459783.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;500&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;I give you my heart&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Hold on let me sign it&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Your senorita A.K.A your best friend&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Hereby, let it be known&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Love like never before&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;I&#039;m always at your service&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;You just have to holler at me&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;NYC, NYC (what, what?)&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;Tokyo, Tokyo (what, what?)&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;Send it off from the streets to the highest&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;To the highest, high&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;MP3, MP3, players&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Work it out, work it out, hustler&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Oh, my name got him there&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Mmm, mmm, mmm&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;You know why&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;I&#039;m gonna be yours tonight&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;We&#039;re gonna ooh~ aah~&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;F.Y.I&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;We&#039;re gonna be up all night&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;I&#039;ll see you later&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;Call me, you know my number&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Like Captain Richard&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;I&#039;m chilling and flossing&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;It&#039;s 7 o&#039;clock&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;I issue the warning&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;That&#039;s right, we&#039;re stealing the show&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;Damn right, letting him know&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;We&#039;re sipping chardonnay from 2 PM on our working day&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Chinga-ling Chinga-ling, what, what&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Chinga-ling Chinga-ling, what, what&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Take me down to the fields where the grass is&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Where the grass is&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;MP3, MP3, players&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;Work it out, work it out, hustler&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;Oh, my name got him there&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;Mmm, mmm, mmm&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;You know why&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;I&#039;m gonna be yours tonight&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;We&#039;re gonna ooh~ aah~&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;F.Y.I&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;We&#039;re gonna be up all night&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;I&#039;ll see you later&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Call me, you know my number&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;See if I don&#039;t need a freak&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;No, damn right&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;No, I don&#039;t want to feel no terror&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;If you want a piece of this stuff&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;Got to give, got to give something&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;You know why&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;I&#039;m gonna be yours tonight&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;We&#039;re gonna ooh~ aah~&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;F.Y.I&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;We&#039;re gonna be up all night&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;I&#039;ll see you later&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 153, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 153, 0);&quot;&gt;Call me, you know my number&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;You know why&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;I&#039;m gonna be yours tonight&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;We&#039;re gonna ooh~ aah~&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;F.Y.I&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;We&#039;re gonna be up all night&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;I&#039;ll see you later&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 118, 53);&quot;&gt;&lt;span style=&quot;color: rgb(255, 118, 53);&quot;&gt;Call me, you know my number&lt;/span&gt;&lt;/div&gt;</description>
			<category>Music</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/270</guid>
			<comments>http://d-story.net/entry/Merry-Christmas-Mr-Lawrence-FYI#entry270comment</comments>
			<pubDate>Thu, 14 May 2009 10:20:31 +0900</pubDate>
		</item>
		<item>
			<title>슬럼프</title>
			<link>http://d-story.net/entry/%EC%8A%AC%EB%9F%BC%ED%94%84</link>
			<description>요즘들어 점점더.. 컴퓨터가 싫어진다..&lt;br&gt;그냥 내 적성에 맞지 않는듯 하다..&lt;br&gt;&lt;br&gt;내가 만든 코드를 보면.. 애착보다는..&lt;br&gt;무미건조한 삭막함이 느껴진다..&lt;br&gt;&lt;br&gt;&lt;div class=&quot;imageblock dual&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1282096432.w242-h181.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;181&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1107181531.w242-h181.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;181&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;사진속 모습처럼..&lt;br&gt;편안한 색상의 조화..&lt;br&gt;그저 평범한 녹색뿐이라도 아름답게..&lt;br&gt;자연스러움이 느껴지게 만들고 싶었다..&lt;br&gt;&lt;br&gt;내가 현실세계에 무언가를 만들지 못하기에..&lt;br&gt;가상공간 안에서 나마 무언가에게..&lt;br&gt;창조적 아름다움을 부여하고 싶었다..&lt;br&gt;&lt;br&gt;한편의 시.. 글을 쓰듯.. 나만의 색채로..&lt;br&gt;아름답다고 말할 수 있는 문장을 만들고 싶었던 것이다..&lt;br&gt;&lt;br&gt;무의미하고.. 오직 자기 만족을 위한..&lt;br&gt;어설픈 잡기술로 점철된 쓰래기..&lt;br&gt;이것이 현실이다.. 실패한 것이다..&lt;br&gt;&lt;br&gt;어디선가 본 내용을 그대로 배끼고선..&lt;br&gt;스스로가 만든 것인 양 우쭐거리기나 하는.. 우스운 모습 따윈..&lt;br&gt;이미 스스로가 묻어버리고자한 과거의 답습일 뿐..&lt;br&gt;&lt;br&gt;
가슴으로 느낄 수 있는 무언가가 필요하다..&lt;br&gt;
정말 진실된 창조란것을 해보고 싶다..&lt;br&gt;

내가 진심으로 뿌듯해 할 수 있는 것을 만들고 싶다..&lt;br&gt;&lt;br&gt;그런데..&lt;br&gt;&lt;br&gt;그것이 프로그래밍은 아닌것만 같다..&lt;br&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/269</guid>
			<comments>http://d-story.net/entry/%EC%8A%AC%EB%9F%BC%ED%94%84#entry269comment</comments>
			<pubDate>Tue, 12 May 2009 21:49:57 +0900</pubDate>
		</item>
		<item>
			<title>인공지능 발표용 자료 (최종)</title>
			<link>http://d-story.net/entry/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EB%B0%9C%ED%91%9C%EC%9A%A9-%EC%9E%90%EB%A3%8C</link>
			<description>&lt;div class=&quot;imageblock right&quot; style=&quot;float: right; margin-left: 10px;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://d-story.net/attachment/1095685186.xxx&quot;&gt;&lt;img src=&quot;http://d-story.net/image/extension/exe.gif&quot; alt=&quot;&quot; /&gt; 인공지능.exe&lt;/a&gt;&lt;/div&gt;신은 나에게 ppt만드는 재주를 주심을 깜박하셨다.. ㅡ_ㅡ&lt;br&gt;이건 뭐.. 거의 발로 만든 수준이군 ㅡ_ㅡ;;...&lt;br&gt;앞으로 ppt 만드는건 최대한 피해야지 ㅡ_ㅡ..&lt;br&gt;&lt;br&gt;15-Puzzle은 IDA*&lt;br&gt;Rubik&#039;s Cube는 Best First Search..&lt;br&gt;&lt;br&gt;</description>
			<category>Homework</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/268</guid>
			<comments>http://d-story.net/entry/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EB%B0%9C%ED%91%9C%EC%9A%A9-%EC%9E%90%EB%A3%8C#entry268comment</comments>
			<pubDate>Fri, 08 May 2009 09:12:53 +0900</pubDate>
		</item>
		<item>
			<title>Optimal Binary Search Tree</title>
			<link>http://d-story.net/entry/Optimal-Binary-Search-Tree</link>
			<description>알고리즘 과제#3&lt;br /&gt;OBST 만들기..!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;#include &lt;stdio.h&gt;
#include &lt;malloc.h&gt;

typedef struct NODE
{
	int key; // Key의 확률 자체임
	struct NODE* left;
	struct NODE* right;
} NODE; // 트리 생성을 위한 구조체

int **R, *p; // 트리 구축을 위한 배열 R과 빈도수 배열 p

void _free(int** T, int n) { int i; for (i=0; i&lt;n+2; i++) free(T[i]); free(T); }
int** _malloc(int n) {  // 작업 공간 배열을 잡아주는 함수
	int i, **T = (int**) malloc(sizeof(int*) * (n+2));
	for (i=0; i&lt;=n+1; i++) T[i] = (int*) calloc(n+1, sizeof(int));
	return T; // 작업공간을 반환 (삭제는 _free를 통해서 하면됨)
}

int minimum(int** A, int i, int j, int* k2) { // 해당 구간의 최소값
	int k1, min = 0x7fffffff;
	for (k1=i; k1&lt;=j; k1++)
		if (A[i][k1-1] + A[k1+1][j] &lt; min) // 최소가 되는 k를 저장
			min = A[i][k1-1] + A[k1+1][j], *k2 = k1;
	return min;
}

int sigma(int p[], int i, int j) { // p배열에서 구간의 합
	int k, sum=0; 
	for (k=i; k&lt;=j; k++) sum += p[k];
	return sum;
}

void preorder(NODE* tree) {
	if (tree != NULL) { // 전위 순회를 통한 key값 출력
		printf(&quot;%d &quot;, tree-&gt;key);
		preorder(tree-&gt;left);
		preorder(tree-&gt;right);
	}
}

int optsearchtree(int n, int p[], int** R) // 트리 구축 자료 생성
{
	int i, j, minavg, diagonal;
	int** A = _malloc(n);

	for (i=1; i&lt;=n; i++)             // 배열 전체가 0으로 이미 초기화됨
		A[i][i] = p[i], R[i][i] = i; // 나머지 0으로 초기화 작업 생략

	for (diagonal=1; diagonal&lt;=n-1; diagonal++)
		for (i=1; i&lt;=n-diagonal; i++)
			j = i+ diagonal, // R의 위치에 minimum Key값을 바로 반영
			A[i][j] = minimum(A, i, j, &amp;R[i][j]) + sigma(p, i, j);

	minavg = A[1][n];
	_free(A, n); // 메모리 누수 방지
	return minavg; // 반환값으로 평균 확률 반환
}

NODE* tree(int i, int j) // 트리 구축 함수
{
	int k;
	NODE* pNode;

	if ((k = R[i][j]) == 0) return NULL;  // 0일경우 끝
	pNode = (NODE*) malloc(sizeof(NODE)); // 그 이외엔 노드 생성
	pNode-&gt;key = k;
	pNode-&gt;left = tree(i, k-1);  // 계속 재귀를 통해서
	pNode-&gt;right = tree(k+1, j); // 단말노드로 부터 이어나감
	return pNode;
}

int main(void)
{
	int loop, i, size;
	FILE* fp = fopen(&quot;input.txt&quot;, &quot;rt&quot;);

	for (fscanf(fp,&quot;%d&quot;,&amp;loop); loop &amp;&amp; fscanf(fp,&quot;%d&quot;,&amp;size); loop--)
	{	// 전체 자료수 만큼 루프를 돌며 처리 시작
		R =  _malloc(size);
		p = (int*) calloc(size+1,sizeof(int));

		for (i=1; i&lt;=size; i++)
			fscanf(fp, &quot;%d&quot;, p+i); // Key 확률 입력받기

		optsearchtree(size, p, R); // 먼저 트리구축 자료를 생성하고
		preorder(tree(1, size)); // 트리를 전위 순회로 화면에 출력
		putchar(&#039;\n&#039;);
		_free(R, size); free(p); // 작업공간은 다시 초기화		
	}

	return 0;
}
&lt;/textarea&gt;</description>
			<category>Homework</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/267</guid>
			<comments>http://d-story.net/entry/Optimal-Binary-Search-Tree#entry267comment</comments>
			<pubDate>Thu, 07 May 2009 23:48:52 +0900</pubDate>
		</item>
		<item>
			<title>읽고 있는 책</title>
			<link>http://d-story.net/entry/%EC%9D%BD%EA%B3%A0-%EC%9E%88%EB%8A%94-%EC%B1%85</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/attach/1/1201680817.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;574&quot; width=&quot;458&quot; /&gt;&lt;/div&gt;&lt;br&gt;이책.. 뭔가 좀 어렵다 ㅡ_ㅡ;;..&lt;br&gt;앞부분은 일반 리눅스 프로그래밍이라 그냥저냥 읽혔는데.......&lt;br&gt;뒤에가면 인공지능때 나오는 에이젼트 구조 나오고.............&lt;br&gt;병렬적으로 분할 방법에 대해 나오는데..............................&lt;br&gt;어떻게 적용해야 하는거지 ㅡ_ㅡ;;........................................&lt;br&gt;&lt;br&gt;뭔가.. 뭔가.. 내 뇌가 다시 작동을 멈춘듯 ㅡ_ㅡ;;...............&lt;br&gt;&lt;br&gt;병렬과 분산에 대한 개념이 없어서 그런가 ㅡ_ㅡ;;...................&lt;br&gt;좀더 깊이 알아봐야겠군......................................................&lt;br&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/266</guid>
			<comments>http://d-story.net/entry/%EC%9D%BD%EA%B3%A0-%EC%9E%88%EB%8A%94-%EC%B1%85#entry266comment</comments>
			<pubDate>Tue, 05 May 2009 19:50:47 +0900</pubDate>
		</item>
		<item>
			<title>인공지능, 시스템프로그래밍, 알고리즘 모두 끝</title>
			<link>http://d-story.net/entry/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%8B%9C%EC%8A%A4%ED%85%9C%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AA%A8%EB%91%90-%EB%81%9D</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1324131488.w500-h312.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;312&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;으하하하... ㅡ_ㅡ....&lt;br&gt;앞으로 3개만 더 하면된다... ㅜ_ㅡ&lt;br&gt;&lt;br&gt;5월 5일은 놀러가자!!.... (제발..ㅠ_ㅠ)</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/265</guid>
			<comments>http://d-story.net/entry/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%8B%9C%EC%8A%A4%ED%85%9C%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AA%A8%EB%91%90-%EB%81%9D#entry265comment</comments>
			<pubDate>Sun, 03 May 2009 16:31:55 +0900</pubDate>
		</item>
		<item>
			<title>인공지능 숙제 하나 완료 ㅡ_ㅡ</title>
			<link>http://d-story.net/entry/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%88%99%EC%A0%9C-%ED%95%98%EB%82%98-%EC%99%84%EB%A3%8C-%E3%85%A1_%E3%85%A1</link>
			<description>내 주말을 반납하고......&lt;div class=&quot;imageblock right&quot; style=&quot;float: right; margin-left: 10px;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://d-story.net/attachment/1087715696.xxx&quot;&gt;&lt;img src=&quot;http://d-story.net/image/extension/exe.gif&quot; alt=&quot;&quot; /&gt; Puzzle Solver.exe&lt;/a&gt;&lt;/div&gt;&lt;br&gt;열심히 노가다해서........&lt;br&gt;인공지능 15-Puzzle 푸는 프로그램은 완성.....&lt;br&gt;&lt;br&gt;그냥 Best-First-Search로는 엄청난!! 시간과 메모리가 필요하기에..&lt;br&gt;이리저리 책 뒤져보고.. 공부해본 결과..&lt;br&gt;IDA*의 개념에 끌려서 바로 적용했음..&lt;br&gt;&lt;br&gt;뭐.. A* 알고리즘이란게.. h*(n) &amp;gt; h() 만 성립하면 되는거자나 ㅡ_ㅡ.....&lt;br&gt;자료구조를 멀 쓰던...... 맞겠지?;;;....&lt;br&gt;&lt;br&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/attach/1/1194492784.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;372&quot; width=&quot;336&quot; /&gt;&lt;/div&gt;&lt;br&gt;이제 시스템 프로그래밍 레포트 써야지.. ㅡ_ㅜ&lt;br&gt;</description>
			<category>Noting Special</category>
			<category>15-Puzzle</category>
			<category>A*</category>
			<category>IDA*</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/264</guid>
			<comments>http://d-story.net/entry/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%88%99%EC%A0%9C-%ED%95%98%EB%82%98-%EC%99%84%EB%A3%8C-%E3%85%A1_%E3%85%A1#entry264comment</comments>
			<pubDate>Sun, 26 Apr 2009 22:32:10 +0900</pubDate>
		</item>
		<item>
			<title>안정을 찾은 책상의 모습</title>
			<link>http://d-story.net/entry/%EC%95%88%EC%A0%95%EC%9D%84-%EC%B0%BE%EC%9D%80-%EC%B1%85%EC%83%81%EC%9D%98-%EB%AA%A8%EC%8A%B5</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1328967800.w500-h375.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;375&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;시험 끝나고 드디어 책상이 좀 사람 사는 집 같아짐..&lt;br&gt;한바탕 태풍이 휩쓴 자리 원상복구 성공.. ㅡ_ㅡ..&lt;br&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/263</guid>
			<comments>http://d-story.net/entry/%EC%95%88%EC%A0%95%EC%9D%84-%EC%B0%BE%EC%9D%80-%EC%B1%85%EC%83%81%EC%9D%98-%EB%AA%A8%EC%8A%B5#entry263comment</comments>
			<pubDate>Sat, 25 Apr 2009 14:28:59 +0900</pubDate>
		</item>
		<item>
			<title>드디어 그림 도착..</title>
			<link>http://d-story.net/entry/%EC%9E%90%EB%8F%99-%EC%A0%80%EC%9E%A5-%EB%AC%B8%EC%84%9C</link>
			<description>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1369066041.w500-h375.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;375&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;그림 도착...ㅎㅎㅎㅎㅎㅎㅎㅎ&lt;br&gt;아.. 이 그림 너무 멋진거 같어.. ㅠ_ㅠ..&lt;br&gt;좀 엉성하게 잘리긴 했지만..&lt;br&gt;색감이 좋아서 굿... 이쁘기도..ㅎㅎ&lt;br&gt;어디에 걸어둘까 고민해 봐야겠군..&lt;br&gt;&lt;br&gt;(사실 가장 가지고 싶은건 원본인데...ㅜ_ㅜ)&lt;br&gt;현재 전 세계에서 가장 비싼 그림이라.........&lt;br&gt;원본은 무리겠지..ㅠ_ㅠ&lt;br&gt;&lt;br&gt;1억 3천 5백만 달러라고 하던데.. ㅠ_ㅠ.........&lt;br&gt;지금 가격으로 &lt;font size=&quot;4&quot;&gt;&lt;span style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;1800억원&lt;/span&gt;&lt;/font&gt;이군..............&lt;br&gt;(위의 사진과 가격차이가 멋지군..... 깨갱인데.......)&lt;br&gt;&lt;br&gt;..1:900000..&lt;br&gt;&lt;br&gt;이 그림 나한테 사주는 사람 이뻐해 줄텐데.. ㅠ_ㅠ&lt;br&gt;&lt;br&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1299852727.w500-h513.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;513&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;</description>
			<category>Noting Special</category>
			<category>초상화</category>
			<category>클림트</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/262</guid>
			<comments>http://d-story.net/entry/%EC%9E%90%EB%8F%99-%EC%A0%80%EC%9E%A5-%EB%AC%B8%EC%84%9C#entry262comment</comments>
			<pubDate>Thu, 23 Apr 2009 21:34:31 +0900</pubDate>
		</item>
		<item>
			<title>명환 in 홍대 탁구장 (09.04.03)</title>
			<link>http://d-story.net/entry/%EB%AA%85%ED%99%98-in-%ED%99%8D%EB%8C%80-%ED%83%81%EA%B5%AC%EC%9E%A5-090403</link>
			<description>&lt;div style=&quot;text-align: center;&quot;&gt;내 휴대폰 속에 찍어 둔게 있길래 한번 올려봄..&lt;br&gt;동영상 보니.. 다현이 좀 시끄러운듯 ㅡ_ㅡ..&lt;br&gt;너 시집못간다!?..ㅉㅉㅉ..&lt;br&gt;&lt;br&gt;&lt;div class=&quot;imageblock dual&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1020703888.w242-h181.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;181&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1400457562.w242-h181.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;181&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class=&quot;imageblock dual&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1354342133.w242-h181.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;181&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1002823970.w242-h181.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;181&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/sPcF8ea3Hc8&amp;amp;hl=ko&amp;amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/sPcF8ea3Hc8&amp;amp;hl=ko&amp;amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br&gt;&lt;/div&gt;</description>
			<category>Korea</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/261</guid>
			<comments>http://d-story.net/entry/%EB%AA%85%ED%99%98-in-%ED%99%8D%EB%8C%80-%ED%83%81%EA%B5%AC%EC%9E%A5-090403#entry261comment</comments>
			<pubDate>Thu, 23 Apr 2009 21:12:46 +0900</pubDate>
		</item>
		<item>
			<title>그냥 뭐.. 적당한 짜증과 허탈의 조우..</title>
			<link>http://d-story.net/entry/%EA%B7%B8%EB%83%A5-%EB%AD%90-%EC%A0%81%EB%8B%B9%ED%95%9C-%EC%A7%9C%EC%A6%9D%EA%B3%BC-%ED%97%88%ED%83%88%EC%9D%98-%EC%A1%B0%EC%9A%B0</link>
			<description>상큼한 4월 예감..&lt;br&gt;&lt;br&gt;월요일 - 시프&lt;br&gt;최근에 손코딩을 안하고.. 디버거 의존률이 100% 가 되더니.. 기초 디버깅 능력 상실..&lt;br&gt;&lt;br&gt;화요일 - 인공지능 컴구&lt;br&gt;나에겐 단기 기억 뇌가 없음을 실감..&lt;br&gt;억지로 머리 굴려서 데이터 패스 다 외우고 멀티패스 FSM 외웠더니..&lt;br&gt;데이터패스는 그려주고.. 싱글의 Control 시그널이 나와주는 센스..&lt;br&gt;&lt;br&gt;수요일 - 프언 (오늘....ㅜ_ㅜ)&lt;br&gt;나의 뇌엔 기억소가자 없음을 깨달았다.. 게다가 어제 잠도 못자서 만신창이..&lt;br&gt;&lt;br&gt;목요일 - 알골&lt;br&gt;그나마 오픈북.. 외우는건 없을테니.. 그나마 희망의 빛 한줄기가.. ㅡ_ㅜ..&lt;br&gt;대신.. 망치면 난 세벽 3시경에 옥상 올라 갈꺼임..&lt;br&gt;&lt;br&gt;금요일 - 컴네&lt;br&gt;알골의 상황에 따라 시험을 못칠 확률도 다분.. ㅡ_ㅡ..&lt;br&gt;&lt;br&gt;다음주..&lt;br&gt;&lt;br&gt;월요일 - 시프 프언&lt;br&gt;레포트 제출............................................!!&lt;br&gt;&lt;br&gt;금요일까지.. 인공지능...........&lt;br&gt;15-Puzzle 과 3*3*3 Cube의 베스트 솔루션 찾는 프로그램 제작..&lt;br&gt;&lt;br&gt;..........&lt;br&gt;.......&lt;br&gt;....&lt;br&gt;..&lt;br&gt;.&lt;br&gt;&lt;br&gt;전역하면 보통 성적이 잘나온다던데..........&lt;br&gt;난 어디서 부터 잘못된걸까 ㅡ_ㅡ.........&lt;br&gt;다음주 부터 닥치고 도서관 직행예정..&lt;br&gt;&lt;br&gt;그래도 복학생이자나.. ㅠ_ㅠ..&lt;br&gt;어느정도 리즈너블한 학점님이 나와줘야 체면이 있자나.. ㅠ_ㅠ..&lt;br&gt;신이시어... 날 버리지 마소서.. ㅠ_ㅠ..&lt;br&gt;제게 왜 기억력을 안주시었나이까.. ㅜ_ㅜ..&lt;br&gt;뭐라도 잘하는거좀 주시지.. ㅠ_ㅜ&lt;br&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/260</guid>
			<comments>http://d-story.net/entry/%EA%B7%B8%EB%83%A5-%EB%AD%90-%EC%A0%81%EB%8B%B9%ED%95%9C-%EC%A7%9C%EC%A6%9D%EA%B3%BC-%ED%97%88%ED%83%88%EC%9D%98-%EC%A1%B0%EC%9A%B0#entry260comment</comments>
			<pubDate>Wed, 22 Apr 2009 22:22:31 +0900</pubDate>
		</item>
		<item>
			<title>D-Story #6 감동을 주지 못하는 현실..</title>
			<link>http://d-story.net/entry/%EA%B0%90%EB%8F%99%EC%9D%84-%EC%A3%BC%EC%A7%80-%EB%AA%BB%ED%95%98%EB%8A%94-%ED%98%84%EC%8B%A4</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1105605036.w500-h375.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;375&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;소소한 현실.. 그것은 과거가 되고..&lt;br&gt;그리움이 되어 나를 자극하는군..&lt;br&gt;&lt;br&gt;편안했던 생활이 그리워지고..&lt;br&gt;잡생각이 드는것도 이러한 이유 때문일까??..&lt;br&gt;&lt;br&gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;&lt;br&gt;인간의 욕심과, 군중심리란 마술과도 같아서..&lt;br&gt;모두들 맹목적으로 무언가를 자신의 목표로 잡고선..&lt;br&gt;서로의 경쟁을 요구하는건 왜일까..&lt;br&gt;&lt;br&gt;분위기에 휩쓸리고..&lt;br&gt;현 사회가 만들어 놓은 틀안에서..&lt;br&gt;무언가의 목표를 이루기 위해 발버둥 치는 모습..&lt;br&gt;&lt;br&gt;태어나서 세상물정 모르는 아이들..&lt;br&gt;시대의 흐름은 그들에게 무거운 삶의 짐을 던져주고..&lt;br&gt;그렇게.. 그것을 당연하게 받아들인 그들은.. 더한 짐을 그들의 자손에게 전해주고..&lt;br&gt;과거로 부터 반복되어온 이 거대한 것..&lt;br&gt;이것이 우리에게 지금의 말도 안되는 복잡한 삶을 만들어 낸건 아닐까?..&lt;br&gt;&lt;br&gt;뭐.. 길을 걷다가.. 그냥 갑자기 이런 생각이 떠올랐다..&lt;br&gt;&lt;br&gt;더욱 우수한..!! 더욱 훌륭한..!!&lt;br&gt;
따라 잡을 수 없을.. 대단한..!!&lt;br&gt;
광기에 찬 눈으로..&lt;br&gt;
맹목적으로 최고를 향해가는 인간의 모습이..&lt;br&gt;의미있는 삶을 찾아가는 것이라 하지만..&lt;br&gt;
삶의 의미를 선택한건 과연.. 나 자신일까!?..&lt;br&gt;
아니면 주변 환경에 휩쓸린 감정?..&lt;br&gt;
또는, 그것에 역행하려는 반발은 아닐까?..&lt;br&gt;그것이 정말 진심으로 자신이 원했던 것이라 할 수 있을까!?..&lt;br&gt;&lt;br&gt;자신의 선택에 후회를 남기지 않으려고..&lt;br&gt;자신에게 거는 최면은 아닌지..&lt;br&gt;&lt;br&gt;하늘에 흐르는 작은 구름을 지켜보는 여유..&lt;br&gt;마른 가지에서 나올 상큼한 푸른 빛에 대한 기대..&lt;br&gt;비오는 날.. 그리움을 살짝 머금은.. 바람에 실려온 땅의 향기..&lt;br&gt;
소소한 자연의 아름다움을 느낄 수 있는 이 마음..&lt;br&gt;사실은 이것들도.. 사회가 우리에게 주입한 무언가는 아닐까?..&lt;br&gt;&lt;br&gt;차에 치인 사람의 그로테스크한 모습..&lt;br&gt;길가에 흩뿌려진 붉은 피.. 비릿한 내음..&lt;br&gt;이리저리 나뒹구는 인체의 조각들..&lt;br&gt;이것을 현 사회가 예술이라 정의하면..&lt;br&gt;사람들은 그것을 감상하지 않을까!?..&lt;br&gt;&lt;br&gt;일단 현재의 내 궁금증에 대한 답은..&lt;br&gt;닥치고 공부나 하라는 결론이 나와야 하는 안타까움이란..&lt;br&gt;내 머리를 더 아프게만 하는구나..</description>
			<category>D-Story</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/259</guid>
			<comments>http://d-story.net/entry/%EA%B0%90%EB%8F%99%EC%9D%84-%EC%A3%BC%EC%A7%80-%EB%AA%BB%ED%95%98%EB%8A%94-%ED%98%84%EC%8B%A4#entry259comment</comments>
			<pubDate>Fri, 17 Apr 2009 18:28:58 +0900</pubDate>
		</item>
		<item>
			<title>Makefile</title>
			<link>http://d-story.net/entry/%EB%8F%8C%EB%A0%A4%EC%93%B0%EA%B8%B0%EC%9A%A9-Makefile</link>
			<description>&lt;div class=&quot;imageblock right&quot; style=&quot;float: right; margin-left: 10px;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://d-story.net/attachment/1229099345.xxx&quot;&gt;&lt;img src=&quot;http://d-story.net/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; Makefile&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;09.04.11 &lt;/p&gt;&lt;/div&gt;이번 SP 숙제하면서 급 다른 기능이 필요해서 수정..&lt;br /&gt;디버그모드 릴리즈모드 구분하고, 프로파일 분석루틴 추가..&lt;br /&gt;실행파일명은 현재 작업중인 폴더명으로 자동 컴파일됨..&lt;br /&gt;&lt;br /&gt;&lt;xmp&gt;CC	?= cc
CFLAGS	= -W -Wall #-std=c99
DFLAGS	= -O0 -g3 -pg -DDEBUG
RFLAGS	= -O3

DBG_SUFFIX = _dbg
PROFILE	= --flat-profile --brief

APPS	= $(word $(words $(subst /, ,$(shell pwd))), $(subst /, ,$(shell pwd)))
OBJS	= $(patsubst %.c, %.o, $(wildcard *.c))
OBJS_d	= $(patsubst %.o, %.o$(DBG_SUFFIX), $(OBJS))

.SUFFIXES: .o .c
.c.o:
	$(CC) $(CFLAGS) $(RFLAGS) -c -o $@ $&lt;

.SUFFIXES: .o$(DBG_SUFFIX) .c
.c.o$(DBG_SUFFIX):
	$(CC) $(CFLAGS) $(DFLAGS) -c -o $@ $&lt;

all: release debug

release: $(OBJS)
	$(CC) $(CFLAGS) $(RFLAGS) -o $(APPS) $?

debug: $(OBJS_d)
	$(CC) $(CFLAGS) $(DFLAGS) -o $(APPS)$(DBG_SUFFIX) $?

analysis:
	@gprof $(PROFILE) $(APPS)$(DBG_SUFFIX)

clean:
	@rm -rf *.o *.o$(DBG_SUFFIX) $(APPS) $(APPS)$(DBG_SUFFIX) gmon.out

run:
	@-./$(APPS)
&lt;/xmp&gt;</description>
			<category>Homework</category>
			<category>Makefile</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/247</guid>
			<comments>http://d-story.net/entry/%EB%8F%8C%EB%A0%A4%EC%93%B0%EA%B8%B0%EC%9A%A9-Makefile#entry247comment</comments>
			<pubDate>Sat, 11 Apr 2009 18:08:53 +0900</pubDate>
		</item>
		<item>
			<title>MRU vs. LRU</title>
			<link>http://d-story.net/entry/MRU-vs-LRU</link>
			<description>SP 과제...&lt;div class=&quot;imageblock right&quot; style=&quot;float: right; margin-left: 10px;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://d-story.net/attachment/1091147254.hwp&quot;&gt;&lt;img src=&quot;http://d-story.net/image/extension/hwp.gif&quot; alt=&quot;&quot; /&gt; A411069_김명환_결과보고서.hwp&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;발로쓴 결과 보고서&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;먼저 입력값을 그룹별로 나눠야 할 필요성이 있기에.. 크게 3가지 그룹으로 분리..&lt;br /&gt;&lt;br /&gt;&lt;font style=&quot;font-weight: bold;&quot; size=&quot;3&quot;&gt;1. 랜덤한 인풋&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock triple&quot; style=&quot;text-align: center&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1246528113.w160-h91.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;91&quot; width=&quot;160&quot; /&gt;&lt;p class=&quot;cap1&quot;&gt;입력값 분포&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1356819687.w160-h32.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;32&quot; width=&quot;160&quot; /&gt;&lt;p class=&quot;cap1&quot;&gt;입력 순서&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1356576717.w160-h32.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;32&quot; width=&quot;160&quot; /&gt;&lt;p class=&quot;cap1&quot;&gt;입력 순서&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;그럼 성능 비교 시작..&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock dual&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1221809894.w242-h152.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;152&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1172396380.w242-h152.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;152&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;이런 이런.. 별반 차이가 없군..&lt;br /&gt;그냥 최대 허용 노드수만 늘리면 장땡..&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;3&quot;&gt;&lt;strong&gt;2. 순차적 인풋&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock triple&quot; style=&quot;text-align: center&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1024233818.w160-h91.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;91&quot; width=&quot;160&quot; /&gt;&lt;p class=&quot;cap1&quot;&gt;입력값 분포&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1151601937.w160-h32.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;32&quot; width=&quot;160&quot; /&gt;&lt;p class=&quot;cap1&quot;&gt;입력 순서&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1346987203.w160-h32.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;32&quot; width=&quot;160&quot; /&gt;&lt;p class=&quot;cap1&quot;&gt;입력 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;성능은 뭐가 더 좋을까나!?..&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock dual&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1340067034.w242-h152.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;152&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1237902961.w242-h152.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;152&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;그렇군열~ MRU 승..&lt;br /&gt;간단히 머리 굴려보면..&lt;br /&gt;계속해서 다른 수가 들어오는 것이 아니라, 어느 정도 들어온 다음에 다시 이전의 값에서부터 시작하고, MRU로 자료를 유지했다면 앞부분의 자료만 변했기에, 다시 예전의 값에서 시작할 때 Update가 호출되기땜시 승.. LRU면.. 예전께 남아 있을리 만무..&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;3&quot;&gt;&lt;strong&gt;3. 말로 표현하기 힘든 인풋.. &lt;font size=&quot;2&quot;&gt;(펄스는 아니고.. 뭐라고 하지 ㅡ_ㅡ??..)&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock triple&quot; style=&quot;text-align: center&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1201565192.w160-h91.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;91&quot; width=&quot;160&quot; /&gt;&lt;p class=&quot;cap1&quot;&gt;입력값 분포&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1068071307.w160-h32.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;32&quot; width=&quot;160&quot; /&gt;&lt;p class=&quot;cap1&quot;&gt;입력 순서&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1233980234.w160-h32.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;32&quot; width=&quot;160&quot; /&gt;&lt;p class=&quot;cap1&quot;&gt;인력 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;성능비교 시작..&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock dual&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1409532609.w242-h152.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;152&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1330107315.w242-h152.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;152&quot; width=&quot;242&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;이번엔 LRU 승..&lt;br /&gt;빈번하게 들어오는 입력값이 많으니..&lt;br /&gt;기존 리스트에 있는 Data에 대한 Update 함수의 호출이 많아질 것이고..&lt;br /&gt;Update 함수를 자주 사용한다면, 빈번히 호출되는 자료를 리스트의 앞쪽에 보관하게 될꺼고..&lt;br /&gt;상대적으로 적게 사용되는 것들을 끝으로 밀어서 새로운 자료가 들어왔을 때..&lt;br /&gt;안쓰는 것들을 지워야 효율적일테고..&lt;br /&gt;위의 말 종합하면..LRU 쓰삼이란 뜻이고..&lt;br /&gt;그래서 LRU의 승리고..&lt;br /&gt;뭐.. 그렇고 그런 이야기 ㅡ_ㅡ..&lt;br /&gt;&lt;br /&gt;그럼.. 코드 구현은 어떻게!??..&lt;br /&gt;&lt;br /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;malloc.h&gt;

#ifndef TABLESIZE
#define TABLESIZE	10
#endif
#define HASH(a) ((a) % TABLESIZE)

typedef struct Node {
	int data;
	struct Node *right;
	struct Node *next;
} Node;

Node *head, HashTable[TABLESIZE];
int MaxItem, ItemCounter;

int _Insert(int data);
int Insert(int data, char* policy);
Node* Search(int data, Node** end);
void Update(Node* node);
void func_select(char* policy, Node* p);
void UnlinkMRU(Node* temp);
void UnlinkLRU(Node* temp);
void Delete(Node* node);
char* print(Node* p)
{
	static char buf[1024], t[16];
	for (	memset(buf,&#039;\0&#039;,sizeof(char) * 1024);
		p != NULL;
		sprintf(t, &quot;%d &quot;, p-&gt;data), strcat(buf, t), p=p-&gt;right ) ;
	return buf;
}

void printTable()
{
	int i;
	Node* p;
	for (i=0; i&lt;TABLESIZE; i++)
	{
		printf(&quot;HashTable[%d] : &quot;, i);
		for (p = HashTable[i].next; p!=NULL; p=p-&gt;next)
			printf(&quot;%d &quot;, p-&gt;data);
		putchar(&#039;\n&#039;);
	}
}
int main(int argc, char* argv[])
{
	int data, ret;
	char mode[4];
	FILE* fp;

	if (argc != 3) exit(1);
	if ((MaxItem = atoi(argv[1])) == 0) exit(1);
	if ((fp = fopen(argv[2],&quot;r&quot;)) == NULL) exit(1);

	memset((head=(Node*) malloc(sizeof(Node))), 0x00, sizeof(Node));

	while (!feof(fp) &amp;&amp; fscanf(fp, &quot;%3s %d&quot;, mode, &amp;data))
	{
#ifdef DEBUG
		printf(&quot;input : %3s, %d\n&quot;, mode, data);
		printf(&quot;before entity list : %s\n&quot;, !ItemCounter ? &quot;empty&quot; : print(head-&gt;right));
#endif
		ret = Insert(data, mode);
#ifdef DEBUG
		printf(&quot;%d is %s in the list.\n&quot;, data, ret ? &quot;missing&quot; : &quot;found&quot;);
		printf(&quot;after entity list : %s\n&quot;, print(head-&gt;right));
		printTable();
		putchar(&#039;\n&#039;);
#endif
	}

	printf(&quot;final entity list : %s\n&quot;, print(head-&gt;right));
	printTable();
	return 0;
}
// 실제 데이터를 리스트에 추가
int _Insert(int data)
{
	Node* temp;
	memset((temp = (Node*) malloc(sizeof(Node))), 0x00, sizeof(Node));

	temp-&gt;data = data; // 해시 테이블 연결부
	temp-&gt;next = HashTable[HASH(data)].next;
	HashTable[HASH(data)].next = temp;

	temp-&gt;right = head-&gt;right; // 우선순위 리스트 연결부
	head-&gt;right = temp;

	return ++ItemCounter;
}
// 선택적 삽입을 위한 분기점
int Insert(int data, char* policy)
{
	Node *temp, *end;

	if ((temp = Search(data, &amp;end)) == NULL &amp;&amp; ItemCounter &lt; MaxItem)
		return _Insert(data); // 없는 자료 &amp; 공간 존재

	else if (temp == NULL &amp;&amp; ItemCounter &gt;= MaxItem)
	{
		func_select(policy, end);
		return _Insert(data); // 없는 자료 &amp; 공간 무
	}

	else // 이미 있는 자료일때
		return Update(temp), 0;
}
// 자료를 찾아서 존재한다면 바로 전 노드를 반환 (해시 테이블)
Node* Search(int data, Node** p)
{	// p 포인터는 RefCount를 줄여보기 위한 발악
	for (*p=HashTable+HASH(data); (*p)-&gt;next != NULL; *p=(*p)-&gt;next)
		if ((*p)-&gt;next-&gt;data == data)
			return (*p)-&gt;next;

	return NULL;
}
// 넘어온 노드의 우선순위리스트 전까지 이동해서 수정 (우선순위 리스트)
void Update(Node* node)
{
	Node *p, *target;
	if (head-&gt;right == node)
		return ;

	for (p=head; p-&gt;right != node; p=p-&gt;right) ;
	target = p-&gt;right;

	p-&gt;right = p-&gt;right-&gt;right;
	target-&gt;right = head-&gt;right;
	head-&gt;right = target;
}
// Delete 방법 호출 판단 및 레퍼런스 카운트 줄이기 대작전
void func_select(char* policy, Node* p) // 우선순위 리스트의 값
{
	static void (*fp[2])(Node*) = { &amp;UnlinkLRU, &amp;UnlinkMRU };
	int mode = !strcmp(policy, &quot;MRU&quot;);
	if (!mode &amp;&amp; p-&gt;right == NULL)
		p = (p-&gt;right != NULL &amp;&amp; p-&gt;right-&gt;next != NULL) ? p-&gt;right : head;

	(fp[mode])(p);
}
// 앞의 노드를 삭제 -- 해시 테이블도 조절해야함 (우선순위 리스트)
void UnlinkMRU(Node* temp)
{	//여기 temp는 안씀
	temp = head-&gt;right;
	head-&gt;right = head-&gt;right-&gt;right;
	Delete(temp);
}
// 넘어오는 p의 위치에서 부터 찾도록 수정 (우선순위 리스트)
void UnlinkLRU(Node* p)
{	// 그나마 처음부터 검색하지 않게 하기 위함
	for (; p-&gt;right!=NULL; p=p-&gt;right)
		if (p-&gt;right-&gt;right == NULL)
			break;

	Delete(p-&gt;right);
	p-&gt;right = NULL; // 윗쪽에 1번 더 카운팅 되기에 여기선 안함
}
// 넘어오는노드 전까지 이동해서 삭제 (해시테이블)
void Delete(Node* node)
{
	Node *p;
	for (p=HashTable+HASH(node-&gt;data); p-&gt;next != node; p=p-&gt;next) ;
	p-&gt;next = p-&gt;next-&gt;next;
	free(node);
}
&lt;/textarea&gt;&lt;br /&gt;더블 리스트 쓰지 말라니.. 닥치고 쓰지 말아야지 ㅡ_ㅡ..&lt;br /&gt;말을 참 잘 듣는 착한 학생..</description>
			<category>Homework</category>
			<category>LRU</category>
			<category>MRU</category>
			<category>System Programming</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/257</guid>
			<comments>http://d-story.net/entry/MRU-vs-LRU#entry257comment</comments>
			<pubDate>Sat, 11 Apr 2009 17:58:35 +0900</pubDate>
		</item>
		<item>
			<title>소팅 시간 비교 Merge vs. Quick</title>
			<link>http://d-story.net/entry/%EC%86%8C%ED%8C%85-%EC%8B%9C%EA%B0%84-%EB%B9%84%EA%B5%90-Merge-vs-Quick</link>
			<description>안타깝게도..&lt;br /&gt;쉘 스크립트 하나 만들다가..&lt;br /&gt;루트가 날라가버리는 불상사 발생..&lt;br /&gt;온 세상이 새하얀 색으로 바뀌는 멋진 광경을 보게 됬다..ㅠ_ㅠ&lt;br /&gt;&lt;br /&gt;블로그에라도 코드 백업좀 해놔야겠어..ㅠ_ㅠ&lt;br /&gt;이기회에 내 블로그랑 학교서버의 폴더랑 동기화 시키는 프로그램이라도 하나 작성 해야겠군..&lt;br /&gt;암튼..&lt;br /&gt;이번 알고리즘 숙제인 시간측정코드..&lt;br /&gt;&lt;br /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;malloc.h&gt;
#include &lt;string.h&gt;
#include &lt;time.h&gt;

// 매우 큰 배열 테스트 (INT보다 더 큰 숫자 테스트를 위해서)
#define TYPE		unsigned

// 함수 prototype
void ExchangeSort(TYPE low, TYPE high);
void MergeSort(TYPE low, TYPE high);
void Merge(TYPE low, TYPE mid, TYPE high);
void QuickSort(TYPE low, TYPE high);
void partition(TYPE low, TYPE high, TYPE *Pivot);

void swap(TYPE* a, TYPE* b);
void sort(void (*)(TYPE, TYPE), TYPE, TYPE, TYPE*, TYPE*, TYPE*);

TYPE *RandomArray; // 랜덤한 수의 배열
TYPE *WorkingSet; // 실 작업 공간

TYPE SwpCount;
TYPE CmpCount;

int main(void)
{
	void (*fp[3])(TYPE, TYPE) = { &amp;ExchangeSort, &amp;MergeSort, &amp;QuickSort };

	FILE *file = fopen(&quot;input.txt&quot;, &quot;r&quot;);
	TYPE out[10][4];

	TYPE i,j;
	TYPE LoopCnt;

	// 입력값으로 내부 변수 초기화
	srand((unsigned) time(NULL));
	fscanf(file, &quot;%u&quot;, &amp;LoopCnt);
	for (i=0; i&lt;4; i++)
		fscanf(file, &quot;%u&quot;, &amp;out[0][i]);

	// 입력하는 데이터를 4개로 가정
	for (i=0; i&lt;4; i++)
	{
		// 작업 공간 잡기
		if ((RandomArray = (TYPE*) malloc(out[0][i] * sizeof(TYPE))) == NULL) break;
		if ((WorkingSet = (TYPE*) malloc(out[0][i] * sizeof(TYPE))) == NULL) break;

		// 랜덤한 순열 생성
		for (j=0; j&lt;out[0][i]; j++) RandomArray[j] = j;
		if (i != 0)
			for (j=out[0][i]-1; j&gt;0; j--)
				swap(&amp;RandomArray[j], &amp;RandomArray[(rand()*time(NULL))%j]);

		// 각 함수별 측정
		for (j=0; j&lt;3; j++)
			sort(fp[j], out[0][i], LoopCnt, &amp;out[j*3+1][i], &amp;out[j*3+2][i], &amp;out[j*3+3][i]);

		free(RandomArray);
		free(WorkingSet);
	}

	// 결과 출력
	printf(
		&quot;                             N=%-5d     R=%-5d     R=%-5d     R=%-5d\n\n&quot;
		&quot;               Compare    %10d  %10d  %10d  %10d\n&quot;
		&quot;Exchange Sort  Exchange   %10d  %10d  %10d  %10d\n&quot;
		&quot;               Exe. Time  %10d  %10d  %10d  %10d\n\n&quot;
		&quot;               Compare    %10d  %10d  %10d  %10d\n&quot;
		&quot;Merge Sort     Exchange   %10d  %10d  %10d  %10d\n&quot;
		&quot;               Exe. Time  %10d  %10d  %10d  %10d\n\n&quot;
		&quot;               Compare    %10d  %10d  %10d  %10d\n&quot;
		&quot;Quick Sort     Exchange   %10d  %10d  %10d  %10d\n&quot;
		&quot;               Exe. Time  %10d  %10d  %10d  %10d\n&quot;,

		out[0][0], out[0][1], out[0][2], out[0][3],
		out[1][0], out[1][1], out[1][2], out[1][3],
		out[2][0], out[2][1], out[2][2], out[2][3],
		out[3][0], out[3][1], out[3][2], out[3][3],
		out[4][0], out[4][1], out[4][2], out[4][3],
		out[5][0], out[5][1], out[5][2], out[5][3],
		out[6][0], out[6][1], out[6][2], out[6][3],
		out[7][0], out[7][1], out[7][2], out[7][3],
		out[8][0], out[8][1], out[8][2], out[8][3],
		out[9][0], out[9][1], out[9][2], out[9][3]);

	return 0;
}

// 각 소팅함수별 측정 자동화
void sort(void (*fp)(TYPE,TYPE), TYPE size, TYPE LoopCnt, TYPE* AvgCompare, TYPE* AvgSwap, TYPE* AvgTime)
{
	TYPE i, j;
	TYPE start;

	*AvgCompare = *AvgSwap = *AvgTime = 0;

	for (i=0; i&lt;LoopCnt; i++)
	{
		// 준비작업
		SwpCount = CmpCount = 0;
		memcpy(WorkingSet, RandomArray, size*sizeof(TYPE));

		// 시간 측정 시작
		start = clock();
		(fp)(0, size-1);
		*AvgTime += clock()-start;

		// 정렬된 데이터의 검증
		for (j=0; j&lt;size; j++)
			if (WorkingSet[j] != j)
				puts(&quot;Error!!&quot;),exit(1);

		*AvgCompare += CmpCount;
		*AvgSwap += SwpCount;
	}

	// 평균내기
	*AvgTime /= LoopCnt;
	*AvgCompare /= LoopCnt;
	*AvgSwap /= LoopCnt;
}

// 교환정렬
void ExchangeSort(TYPE low, TYPE high)
{
	TYPE i, j;

	for (i=0; i&lt;high-low; i++)
		for (j=high-low; j&gt;i; j--)
			if (++CmpCount &amp;&amp; WorkingSet[j] &lt; WorkingSet[j-1])
				swap(WorkingSet+j, WorkingSet+j-1);
}

// 머지소트
void MergeSort(TYPE low, TYPE high)
{
	TYPE mid = (low+high) / 2;

	if (low &lt; high)
	{
		MergeSort(low, mid);
		MergeSort(mid+1, high);
		Merge(low, mid, high);
	}
}

// 실제 합치는 과정
void Merge(TYPE low, TYPE mid, TYPE high)
{
	TYPE i=low, j=mid+1, k=0, size = high-low+1;
	TYPE *U = (TYPE*) malloc(size * sizeof(TYPE));

	while (++CmpCount &amp;&amp; i&lt;=mid &amp;&amp; j&lt;=high)
		U[k++] = (WorkingSet[i] &lt; WorkingSet[j]) ? WorkingSet[i++] : WorkingSet[j++];

	SwpCount += size;
	memcpy(U+k, WorkingSet+(i&gt;mid?j:i), (size-k) * sizeof(TYPE)); 
	memcpy(WorkingSet+low, U, size * sizeof(TYPE));
	free(U);
}

// 퀵소트
void QuickSort(TYPE low, TYPE high)
{
	TYPE PivotPoint;

	if (high &gt; low)
	{
		partition(low, high, &amp;PivotPoint);
		if (PivotPoint != 0)
			QuickSort(low, PivotPoint-1);
		QuickSort(PivotPoint+1, high);
	}
}

// 피봇을 기준으로 데이터 정렬
void partition(TYPE low, TYPE high, TYPE* Pivot)
{
	TYPE i, j=low;
	TYPE PivotItem = WorkingSet[low];

	for (i=low+1; i &lt;= high; i++)
		if (++CmpCount &amp;&amp; WorkingSet[i] &lt; PivotItem)
			swap(&amp;WorkingSet[i], &amp;WorkingSet[++j]);

	*Pivot = j;
	swap(&amp;WorkingSet[low], &amp;WorkingSet[*Pivot]);
}

// 스왑함수
void swap(TYPE* a, TYPE* b) {
	if (++SwpCount &amp;&amp; *a != *b) {
		*a = *a ^ *b;
		*b = *a ^ *b;
		*a = *a ^ *b;
	}
}
&lt;/textarea&gt;&lt;br /&gt;</description>
			<category>Homework</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/256</guid>
			<comments>http://d-story.net/entry/%EC%86%8C%ED%8C%85-%EC%8B%9C%EA%B0%84-%EB%B9%84%EA%B5%90-Merge-vs-Quick#entry256comment</comments>
			<pubDate>Fri, 03 Apr 2009 08:59:04 +0900</pubDate>
		</item>
		<item>
			<title>Sort 시간 측정 골아프군</title>
			<link>http://d-story.net/entry/Sort-%EC%8B%9C%EA%B0%84-%EC%B8%A1%EC%A0%95-%EA%B3%A8%EC%95%84%ED%94%84%EA%B5%B0</link>
			<description>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1259735437.w500-h245.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;245&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;...&lt;br&gt;
&lt;br&gt;
검은색이 Quick Sort..&lt;br&gt;
붉은색이 Merge Sort..&lt;br&gt;
왼쪽 구석의 파란점이.. Exchange Sort..&lt;br&gt;&lt;br&gt;아놔.. 퀵소트가 NLogN의 시간에 비례한다며 ㅡ_ㅡ;;..&lt;br&gt;어딜봐서 NLogN 이야 ㅡ_ㅡ;;..............&lt;br&gt;자료 수가 적은게냐 ㅡ_ㅡ..?&lt;br&gt;&lt;br&gt;1000단위로.. 1000에서 803000 까지.. 총 803개의 자료를 만들었자나!!..&lt;br&gt;(저거 값 뽑아내는데 무려 1시간이 걸렸단 말이야..ㅠ_ㅠ)&lt;br&gt;&lt;br&gt;뭐가 부족해!!.. ㅜ_ㅜ&lt;br&gt;무한정 돌려버릴까 ㅡ_ㅡ!?..&lt;/div&gt;</description>
			<category>Noting Special</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/255</guid>
			<comments>http://d-story.net/entry/Sort-%EC%8B%9C%EA%B0%84-%EC%B8%A1%EC%A0%95-%EA%B3%A8%EC%95%84%ED%94%84%EA%B5%B0#entry255comment</comments>
			<pubDate>Sun, 29 Mar 2009 13:33:44 +0900</pubDate>
		</item>
		<item>
			<title>프로그래밍 언어시간에 교수님이 물어본 내용</title>
			<link>http://d-story.net/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%96%B8%EC%96%B4%EC%8B%9C%EA%B0%84%EC%97%90-%EA%B5%90%EC%88%98%EB%8B%98%EC%9D%B4-%EB%AC%BC%EC%96%B4%EB%B3%B8-%EB%82%B4%EC%9A%A9</link>
			<description>부동소수점 변수들 내부에 비트들이 어찌 생겨먹었는지 물어보셔서..&lt;br /&gt;낼름 하나 짜봤음..&lt;br /&gt;(비트 필드 만쉐이~)&lt;br /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;#include &lt;stdio.h&gt;

typedef union
{
	float val;
	struct 
	{
		unsigned significand:23;
		unsigned exponent:8;
		unsigned sign:1;
	};
} FLOATING;

typedef union
{
	double val;
	struct 
	{
		unsigned significandEx:32;
		unsigned significand:20;
		unsigned exponent:11;
		unsigned sign:1;
	};
} DOUBLE;

int main(void)
{
	FLOATING f;
	DOUBLE d;

	f.val = 0.75;
	d.val = -0.75684564;

	printf(&quot;%x %x %x\n&quot;, f.sign, f.exponent, f.significand);
	printf(&quot;%x %x %x%0x\n&quot;, d.sign, d.exponent, d.significand, d.significandEx);

	return 0;
}&lt;/textarea&gt;</description>
			<category>Homework</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/254</guid>
			<comments>http://d-story.net/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%96%B8%EC%96%B4%EC%8B%9C%EA%B0%84%EC%97%90-%EA%B5%90%EC%88%98%EB%8B%98%EC%9D%B4-%EB%AC%BC%EC%96%B4%EB%B3%B8-%EB%82%B4%EC%9A%A9#entry254comment</comments>
			<pubDate>Tue, 24 Mar 2009 00:37:52 +0900</pubDate>
		</item>
		<item>
			<title>남용이네 자료구조 스택 숙제</title>
			<link>http://d-story.net/entry/%EB%82%A8%EC%9A%A9%EC%9D%B4%EB%84%A4-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%8A%A4%ED%83%9D-%EC%88%99%EC%A0%9C</link>
			<description>남용아~ 나 너무 착하지?ㅋㅋㅋ&lt;br /&gt;너네 교수님은 특이한걸 요구 하시는군..ㅋㅋ&lt;br /&gt;스택2개로 큐를 구현하라니..ㅋㅋ&lt;br /&gt;&lt;br /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;#include &lt;iostream&gt;
#define DELIM &quot; &quot;

using namespace std;

template &lt;typename T&gt;
class CStack
{
private:
	T *S; int size, sp;
	bool inline isErr(T data) {return (data == OVERFLOW || data == UNDERFLOW);};

public:
	enum { OVERFLOW = 0x80000000, UNDERFLOW = 0x80000001 };

	CStack(T _size):size(_size),sp(0) { S = new T[size]; };
	virtual ~CStack()	{ delete[] S; };

	T pop(void) { return (sp &gt; 0 ? S[--sp] : UNDERFLOW); };
	T push(T val) { return (sp&lt;size &amp;&amp; !isErr(val) ? S[sp++]=val : OVERFLOW); };

	void print(void) { for (int i=0; i&lt;sp; cout&lt;&lt;S[i++]&lt;&lt;&quot; &quot;) ; cout &lt;&lt; endl; };
};

class CCrazyQueue
{
private:
	CStack&lt;int&gt; st1, st2;

public:
	CCrazyQueue(int size = 10) : st1(size), st2(size) { }

	void in(int data)
	{
		if (st1.push(data) == CStack&lt;int&gt;::OVERFLOW) {
			cout &lt;&lt; &quot;작작좀 넣으삼!!&quot; &lt;&lt; endl;
			return ;
		}
		while (st2.push(st1.pop()) != CStack&lt;int&gt;::OVERFLOW);
		while (st1.push(st2.pop()) != CStack&lt;int&gt;::OVERFLOW);
	}

	int out(void)
	{
		while (st2.push(st1.pop()) != CStack&lt;int&gt;::OVERFLOW);
		int ret = st2.pop();
		if (ret == CStack&lt;int&gt;::UNDERFLOW) {
			cout &lt;&lt; &quot;작작좀 빼삼!!&quot; &lt;&lt; endl;
			return ret;
		}
		while (st1.push(st2.pop()) != CStack&lt;int&gt;::OVERFLOW);
		return ret;
	}

	void print(void) { st1.print(); }
};

int main(void)
{
	CCrazyQueue q(10);
	char input[256], *p;

	while (1)
	{
		cout &lt;&lt; &quot;&gt; &quot;;
		cin.getline(input, 256);
		if (*input == &#039;\0&#039;) continue;

		p = strtok(input, DELIM);

		if (strcmp(p, &quot;in&quot;) == 0)
		{
			for (p=strtok(NULL,DELIM); p != NULL; p=strtok(NULL,DELIM))
				q.in(atoi(p));
			q.print();
		}
		else if (strcmp(p, &quot;out&quot;) == 0)
			q.out(), q.print();
		else if (strcmp(p, &quot;quit&quot;) == 0)
			break;
		else
			cout &lt;&lt; &quot;손가락 병신임?&quot; &lt;&lt; endl;
	}

	return 0;
}
&lt;/textarea&gt;</description>
			<category>Homework</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/253</guid>
			<comments>http://d-story.net/entry/%EB%82%A8%EC%9A%A9%EC%9D%B4%EB%84%A4-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%8A%A4%ED%83%9D-%EC%88%99%EC%A0%9C#entry253comment</comments>
			<pubDate>Sun, 22 Mar 2009 13:32:07 +0900</pubDate>
		</item>
		<item>
			<title>명환 in 올림픽공원 (09.03.18) - Maksim 내한공연</title>
			<link>http://d-story.net/entry/%EB%AA%85%ED%99%98-in-%EC%98%AC%EB%A6%BC%ED%94%BD%EA%B2%BD%EA%B8%B0%EC%9E%A5-Maksim-%EB%82%B4%ED%95%9C%EA%B3%B5%EC%97%B0</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://d-story.net/thumbnail/1/1170475953.w500-h703.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;703&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;br&gt;막심 내한공연 다녀왔다~ㅎㅎㅎ&lt;br&gt;기대치 보다는 좀 실망을 했지만.............&lt;br&gt;아무튼 오랜만에 문화생활...&lt;br&gt;&lt;br&gt;실망했던 점만 꼽으라면..&lt;br&gt;&lt;br&gt;1. 저질스런 음향효과...&lt;br&gt;완전 맙소사였다.. 피아노소리가 주변연주에 파뭍혀버리고......&lt;br&gt;바이올린음이 고음으로 올라가자... 스피커에서 소리가 뭉개졌다....ㅡ_ㅡ&lt;br&gt;&lt;br&gt;2. 조명..&lt;br&gt;일렉트릭적 요소가 가미되다 보니.. 화려하게 하는건 좋은데..&lt;br&gt;관객에게 빛을 그리도 쏴대면 눈부셔서 어쩌란거임 ㅡ_ㅡ...........&lt;br&gt;&lt;br&gt;아무튼 돈에 비해선 뭔가 살짝 아쉬웠다..&lt;br&gt;&lt;br&gt;그리고.. 끝내 저분은.. 목소리 공개를 안하시고 가버리는 ㅡ_ㅡ......&lt;br&gt;목소리가 궁금했는데 ㅡ_ㅡㅋ..&lt;br&gt;(내한공연 왔으면 인사정도는 해주는 센스 없나 ㅡ_ㅡ...)&lt;br&gt;</description>
			<category>Korea</category>
			<category>Maksim Mrvica</category>
			<author>(dr.Dorothy)</author>
			<guid>http://d-story.net/252</guid>
			<comments>http://d-story.net/entry/%EB%AA%85%ED%99%98-in-%EC%98%AC%EB%A6%BC%ED%94%BD%EA%B2%BD%EA%B8%B0%EC%9E%A5-Maksim-%EB%82%B4%ED%95%9C%EA%B3%B5%EC%97%B0#entry252comment</comments>
			<pubDate>Thu, 19 Mar 2009 08:53:15 +0900</pubDate>
		</item>
	</channel>
</rss>
