[도서] C로 배우는 알고리즘(1)


C로배우는 알고리즘(1)
지은이 이재규 출판사 세화 | 발행일 1996년 02월 06일

도서 소개

이 책은 1권과 2권으로 구성되어 있는데,

1권의 내용은 주로 프로그램을 작성할 때 많이 사용하게 되는 "자료구조"에 관한 것입니다. 기본적인 자료 구조라 할 수 있는 배열과 스택, 큐, 연결 리스트, 그리고 복잡한 자료 구조인 나무 구조, 우선 순위 큐 등을 다루고 있습니다. 이 1권의 내용은 주로 전산학과 2학년 과정에 포함되어 있는 "자료구조론"의 내용입니다.

이에 비해 2권 C로 배우는 알고리즘(2) - 활용 알고리즘 (이재규, 세화)의 내용은 프로그램의 다른 측면인 "알고리즘"에 대한 것입니다. 전산학과 3,4학년 과정에 해당하는 내용이지만 1권을 착실히 독파한 독자라면 2권의 독파에도 별 어려움이 없을 것으로 믿습니다. 그리고 1권에서 배운 자료구조가 어떻게 실제로 활용되는지 보여주는 좋은 예들이 많이 있습니다.


뛰어난 프로그래머가 되기 위해서는 알고리즘에 능숙해야 합니다. 알고리즘의 숙달은 프로그램을 한층더 세련되게 하고 효율을 높여줍니다. 이 책은 철저한 원리 이해와 완벽한 C 프로그램으로 다양한 알고리즘과 문제해결에 대한 창조적인 방법론을 제공합니다.

이 책의 주요 내용
*첫째 : 알고리즘의 기본 개념과 용어를 쉽게 풀이하였다.
*둘째 : 기본적인 자료구조에서 어려운 자료구조까지 그 원리와 C로 구현함에 있어서의 문제점을 상세히 소개하였다.
*셋째 : 애매하기만한 재귀호출에 대해 명확한 해석법과 나아가 재귀호출을 제거하는 방법을 체계적으로 제공하였다.
*넷째 : 프로그램 개발시 가장 많이 부딪치는 문제인 정렬과 검색에 대해서 상세하고 다양한 접근 방법을 소개하고, 곧바로 활용할 수 있는 라이브러리를 제공합니다.

C 문법책을 보았지만 어떻게 프로그램을 작성해야 할지 잘 모르는 초급자, 알고리즘의 벽을 넘지 못한 중급자에게 좋은 프로그래밍 지침이 될 것입니다.


목 차
001. 일러두기
002. 개요
003. C언어
004. 자료구조
005. 재귀호출
006. 정렬 알고리즘
007. 검색
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2003/05/26 10:25 2003/05/26 10:25
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/4547

nmap ------- 포트확인하는거~!

sendmail에서 pop3가 안되는거 같습니다.
노신래 날짜 : 2003.02.21 07:30:20 조회 : 199


안녕하세요
저도 이런경우를 경험한 적이 있어서 몇자 적습니다.
1. 먼저 nmap localhost 해서 110 번 포트가 열렸는지 확인합니다. 열려있지 않다면 열어주시고 열려있다면 다음으로 넘어갑니다.
2. telent localhost 110 해 보세요 연결이 되면 별문제가 없는건데 님의 경우 대부분 연결이 되지 않을걸로 생각됩니다.
저의 경우는 /etc/hosts.deny 에서 ALL : ALL 로 막아두어 발생한 문제였거든요
혹시 tcp wrapper이나 방화벽으로 막아두지 않았는지 확인해 보시기 바랍니다. 십중팔구는 아마 여기에 문제가 있는것 같군요
그럼 행운을...

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2003/05/10 14:20 2003/05/10 14:20
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/93

mail ------ linux에서 메일 보내기

[root@xeon /]# mail neo@yesbiz.co.kr
Subject: test

main

.
# "마침표" 또는 " [ctrl] + [D] " 키를 누르세요~!

Cc: neo@yesbiz.co.kr
[root@xeon /]#

작성도중 이를 취소하려면, [ctrl]+[C] 를 두 번 눌러주어야한다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2003/05/10 14:00 2003/05/10 14:00
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/92

netstat ... [win계열] 자신의 컴과 연결된 상대방 컴 주소확인



이 명령어는 windows 계열에서 사용할 수 있으며 프로토콜 통계와 현재 TCP/IP 네트워크 연결을 표시합니다. 이렇게 말하면 어렵게 들릴지 모르겠는데 쉽게 말하자면 내 컴퓨터와 연결된 다른 컴퓨터의 리스트를 보는 명령어라는 것입니다. win98의 경우 한글MS-DOS창에서 netstat 라고 입력하면 아래와 같이 나타납니다.



Local Address

이것은 자기 컴퓨터입니다. test라는 것은 현재 이컴퓨터의 이름이고 오른쪽 숫자는 통신포트를 말합니다. 즉, 연결된 통로의 번지쯤 된다고 생각하시면 됩니다.

Foreign Address

인터넷으로 연결된 원격 컴퓨터의 리스트입니다. 여기서 localhost는 자기자신이며 168.249.156.239가 원격컴퓨터의 주소가 됩니다. 현재 한 개의 원격컴퓨터와 연결된 것을 알 수 있습니다. 만약 웹 브라우저로 어떤 사이트를 보고 있다면 그 사이트의 주소가 나타날것입니다.


netstat를 통한 문제진단 요령




네트웤 감시/네트워크 바이러스 진단

원격컴퓨터의 리스트를 본다는 것은 정상적인 연결외에 비정상적으로 연결된 것도 볼 수 있다는 것을 의미합니다. 얼마전 nimda 바이러스가 한때 세상을 떠들석하게 했을 때 감염된 PC를 알아내는 가장 간단한 방법이 netstat 명령어를 사용하는 것이었습니다. 자기가 접속한 웹사이트나 ftp 사이트외에 알지 못하는 컴퓨터 주소가 무수하게 나오면 백발백중 nimda에 감염된 것이라는 것이죠. 또는 누군가가 내 컴의 정보를 보고 있는지도 체크할 수 있습니다.

-n 옵션 : 주소와 포트 번호를 숫자 형식으로 빠르게 표시합니다
-r 옵션 : 라우팅 테이블을 보여줍니다

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2003/05/10 11:07 2003/05/10 11:07
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/91

배달실패에 나올수 있는 에러메시지 원인(sendmail)

메일을 보낼 때 화면에 나타나는 에러 메시지의 종류와 에러 발생 이유는 다음과 같은 종류가 있습니다.

-does not like recipient / user unknown / Unsupported mail destination

메일 주소가 정확하지 않거나 수신측 메일 서버에 이상이 있는 경우에 발생하는 에러입니다. 도메인을 @yahoo.co.kr 대신 @yahoo.com (내지는 반대로)로 잘못 입력했을 수 있습니다.
또는 기호들을 혼동해서 잘못 입력했을 수도 있습니다.

예 : 하이폰(-)과 밑줄 (_)
점(.)과 쉼표(,)
1(숫자 1)과 l(소문자 L)
0(숫자 0)과 O(대문자 O)

만일 잘못 입력된 ID가 실재로 존재한다면 전자우편은 그 사람에게 갈 것입니다.

또한 국내 PC 통신의 한글 ID로는 메일 전송이 불가능합니다. 메일 주소는 전세계 공통이므로 국제 표준에 맞는 기호로 구성된 메일 주소만 정상적으로 전송되며 "천리안 한글 ID @chollian.net" 혹은 "유니텔 한글 ID@unitel.co.kr"와 같은 메일 주소로는 전송되지 않습니다.

-No such user / user doesn"t have a * account
메일 계정이 없다는 뜻이며 메일 주소가 존재하지 않거나 삭제된 경우입니다.

-Host unknown
메일 주소가 정확하지 않거나 수신측 메일 서버에 이상이 있는 경우입니다. "@" 뒤의 주소를 확인해 주세요. 점(.)이 불필요하게 중복되어 있거나 없는 경우를 확인하세요.
예: hongildong@yahoo.cokr 혹은 hongildong@.yahoocokr.

-Account disabled or discontinued
메일 계정이 삭제 혹은 해지 처리되어 배달되지 않은 경우입니다.

-Permanant fatal errors
받고자 하시는 곳의 메일 서버가 외부의 메일을 거부하거나 메일 주소가 정확하지 않아서 일어나는 현상인 경우가 많습니다.

-Data format error
외국의 메일 서버 중에는 영어 외의 언어로 작성된 제목을 지원하지 않는 경우가 있습니다. 제목란을 한글로 기입하셨거나 본문 자체에 서버에서 인식하지 않는 문자가 들어있는 경우에 이러한 에러 메세지가 발생합니다.
이런 경우, 제목을 영어로 작성하시고 (예: Hi!) 한글 본문은 첨부 파일(예: 메모장으로 작성된 txt 파일, 워드 파일 등)로 보내시기 바랍니다.

-Invalid name format
메일 주소를 잘못 기입하신 경우로 흔한 실수는 @의 전후, 혹은 메일 주소의 맨 앞이나 맨 뒤에 점(.)을 입력하거나 메일 주소 맨 앞에 "www."를 입력하는 경우 등이 있습니다.

-Operation timed out / Name server timeout
수신측 메일 서버를 찾을 수 없어서 아직 메일이 보내지지 않은 경우이지만 일정 시간이 지난 후 다시 시도하겠다는 경과 보고형 에러 메시지입니다. 조금 더 기다려 주시기 바랍니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2003/05/10 11:04 2003/05/10 11:04
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/90

wall ---> 메세지 보네기~!

wall [ 메세지]

하면 메세지가 보인다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2003/05/09 20:17 2003/05/09 20:17
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/89

루터디렉토리 구하는거

루터디렉토리 구하는거 조회수:142





워낙 단순하고 고수들이 많은 PHP School 에서 무슨 팁이라고 부를 수도 없겠지만..
초보로서 저보다 더 초보인 분들을 위해 간단한 루터 구하는 꽁수하나 올립니다.

리눅스를 기준으로 제작한 게시판을 윈도우의 APM 설치해서 테스트할 경우 웹계저의
루터(http://domain.com )가 아니라 웹 계정내에 따로 게시판용 디렉토리 board 를
만들어 그 곳에 게시판을 설치할 경우(http://domain.com/board )에는 디렉토리
구조차이로 에러가 나는 경우가 많습니다.
이럴 때 아래 함수(루틴?)을 이용하면 board 디렉토리의 경로를 쉽게 구할 수 있습니다.

$num = substr_count($REQUEST_URI, "/");
if ($num == 2)
$Root_Path = "./";
else {
for ($i = 2; $i < $num; $i++)
$Root_Path .= "../";
}


공통으로 인크루드해서 사용하는 파일( function.php 또는 lib.php...) 상단에 위 함수를
넣어주고, 다른 프로그램 파일 등에서 사용시에는..

include $Root_Path."admin/admin.php"

이런 식으로 $Root_Path 를 앞에 붙이고 다음에 루터로부터 원하는 파일의 위치와 이름을
차례로 적어주면 됩니다.

보시면 알겠지만 아주 간단하게 이 파일( function.php 또는 lib.php...)을 호출하고 있는
파일(즉, 실제 실행중인 프로그램 파일)의 웹 경로(REQUEST_URI)에서 슬래쉬(/)가
몇개나 있는지 검사해서 두 개 (/board/index.php) 라면 루터 디렉토리는 ./ 가 되고...
두 개 이상이면 증가하는 갯수만큼 ../ 를 반복 입력해주는 거죠.

만약 위 함수를 담고 있는 공통파일을 호출한 실제 실행중인 파일의 주소가
http://domain.com/board/bbs/list.php라면 / 가 세개(/board/bbs/list.php)므로 루터
디렉토리 이름($Root_Path)은 ../../ 가 됩니다.

$REQUEST_URI 는 PHP자체에서 제공하는 서버환경변수로 프로그램파일의 웹 주소에서
도메인 부분을 뺀 나머지 주소를 값으로 가집니다.
http://domain.com/board/bbs/list.php 라면..$REQUEST_URI => /board/bbs/list.php

REQUEST_URI 대신 다른 변수를 이용해도 되겠지만 아무래도 위 함수를 담고있는 프로그램
파일이 자체적으로 어떤 실행을 하기보다는 대부분 다른 프로그램파일의 실행에 인크루드
되어서 실행되는 경우가 많을 테니까 ..
_SERVER[PHP_SELF] 나 HTTP_SERVER_VARS[DOCUMENT_ROOT]등의 변수보다
더 적당한 것 같네요.(??)



크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2003/05/06 18:30 2003/05/06 18:30
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/12

Mysql에서 로그파일 남기기~!


http://linux.co.kr/tips/userview.html?page=7&keyword=
--------------------------------------------------------------------------------


작성일자 : 2001년 05월 09일
조회수 : 9235

--------------------------------------------------------------------------------
mysql의 로그파일...
1. 에러로그
-> 서버 실행시 에러를 기록하는 로그
-> host_name.err 이라는 파일로 기록됨
2. 일반적인 로그
-> mysql에 접근하는 사용자와 그들이 파일과 관련된 쿼리를 실행할 경우 기록됨
-> mysql의 데이터 디렉토리(/usr/local/var or /var/mysql/data)에 host_name.log로 기록
-> --log 라는 옵션을 주어 실행해야지 기록됨.
3. 업데이트 로그
-> 테이블에 변경이 있을 때마다 해항 쿼리가 기록됨
-> 2번과 마찬가지로 --log-update라는 옵션을 주어야 실행됨
-> host_name.#(일정하게 증가하는 번호)로 생성
-> mysqladmin refresh or mysqlamdin flush-logs를 할때마다 host_name.001, host_name.002와 증가한 이름이 붙
는다.
-> 하나의 파일에 다 넣으려면 --log-update=update.log한다. 그러면 update.log하나의 파일에 다 들어감..

og를 남겨 뒤통수 맞는 일이 없도록 합시다..-_-;
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2003/05/02 17:59 2003/05/02 17:59
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/11

Mysql에서 로그파일 남기기~!


http://linux.co.kr/tips/userview.html?page=7&keyword=
--------------------------------------------------------------------------------


작성일자 : 2001년 05월 09일
조회수 : 9235

--------------------------------------------------------------------------------
mysql의 로그파일...
1. 에러로그
-> 서버 실행시 에러를 기록하는 로그
-> host_name.err 이라는 파일로 기록됨
2. 일반적인 로그
-> mysql에 접근하는 사용자와 그들이 파일과 관련된 쿼리를 실행할 경우 기록됨
-> mysql의 데이터 디렉토리(/usr/local/var or /var/mysql/data)에 host_name.log로 기록
-> --log 라는 옵션을 주어 실행해야지 기록됨.
3. 업데이트 로그
-> 테이블에 변경이 있을 때마다 해항 쿼리가 기록됨
-> 2번과 마찬가지로 --log-update라는 옵션을 주어야 실행됨
-> host_name.#(일정하게 증가하는 번호)로 생성
-> mysqladmin refresh or mysqlamdin flush-logs를 할때마다 host_name.001, host_name.002와 증가한 이름이 붙
는다.
-> 하나의 파일에 다 넣으려면 --log-update=update.log한다. 그러면 update.log하나의 파일에 다 들어감..

og를 남겨 뒤통수 맞는 일이 없도록 합시다..-_-;
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2003/05/02 17:59 2003/05/02 17:59
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/9

파일 리스트 보기


윈도 쓰시는 분들은
$path="c:/Apache/htdocs/filepds/data/";

요런식으로 쓰시면 됩니다.

★ PHP 강좌 게시판에서 파일로 검색하시면 됩니다. 관련 강좌가 수십개 입니다.



$dir_name = "/windows/desktop/My Downloads/";

$dir = opendir($dir_name);

$file_list = "
    ";

    while ($file_name = readdir($dir)) {
    if (($file_name != ".") && ($file_name != "..")) {
    $file_list .= "
  • $file_name";
    }
    }

    $file_list .= "
";

closedir($dir);

?>



Directory Listing



Files in:









크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2003/05/02 17:58 2003/05/02 17:58
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/10

« Previous : 1 : ... 633 : 634 : 635 : 636 : 637 : 638 : 639 : 640 : Next »

블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2024/04   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
Statistics Graph

Site Stats

Total hits:
182536
Today:
532
Yesterday:
506