Microsoft MVP성태의 닷넷 이야기
도서 - 누워서 읽는 알고리즘 [링크 복사], [링크+제목 복사]
조회: 16582
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

도서 - 누워서 읽는 알고리즘

알고리즘 책 하나 추천합니다. ^^

누워서 읽는 알고리즘
; http://www.yes24.com/24/goods/6116357?scode=032

참고로, 책의 내용 중에서 한 가지 아쉬운 점을 이야기해 보면.

"03. 데이터 구조 정의하기" 절의 32페이지에 보면 포커 카드에 대한 데이터 구조를 정의하라는 요구 사항에 다음과 같은 식의 정의를 했다고 나옵니다.

struct card {
    char *shape;
    int number;
} cards [] = {
    "spade", 1,
    "heart", 1,
    .......
};

하지만 면접관이 마음에 들어하지 않음을 눈치채고 이어서 다음과 같이 바꿨다고 했는데요.

struct card {
    char shape;
    int number;
} cards [] = {
    'C, 1,
    'H', 1,
    .......
};

이렇게 했는데도 '질문자의 양미간이 움직였다'고 표현하고 있으며, 더 개선한 답을 내지 않고 이 상태에서 이전 방법과의 '시간', '공간'이 대립한다는 식으로 설득을 했다면서 마무리 짓고 있습니다.

제가 그 면접관은 아니지만... 아마 기대했던 답은 위의 2가지 장점을 모두 취한 답이 아니었을까 생각해 봅니다. 다음과 같은 식으로.

enum cardType
{
    DIAMOND,
    SPADE,
    .......
};

struct card {
    cardType shape;
    int number;
} cards [] = {
    DIAMOND, 1,
    SPADE, 1,
    .......
};

저 책의 초판이 2003년이라고 나오는데, 벌써 12년이 지났으니 아마도 지금은 저자도 알고 계시지 않을까 싶습니다.

그리고 한 가지 더 살짝 개인적인 의견을 언급하면.

144페이지에 '재귀'함수의 단점에 대해 다음과 같이 설명하고 있습니다.

재귀 알고리즘은 이렇게 내부 스택을 이용해서 함수가 호출된 지점을 정확하게 기억해야 하기 때문에 메모리의 사용이나 프로그램의 처리 속도 면에서 추가적인 부하가 걸린다. ... 그래서 프로그래밍의 '고수'들은 재귀 알고리즘 대신 본인이 직접 설계한 스택을 이용하거나 for 나 while 과 같은 루프를 돌리는 방법을 선호하는 경우가 많다.


사실 제 개인적으로는 재귀 함수가 처리 속도면에서 물론 부족하긴 하지만 재귀 함수를 for/while로 바꾸는 최대 이유는 StackOverflow라고 생각됩니다. 참고로, 그 책의 이후 내용에서 재귀로 인한 StackOverflow 발생을 예시로 보여주고 있지만 '바꾸는 이유의 중요성'에 있어 앞의 것보다 더 중요하게 이야기 하고 있지는 않습니다.









[최초 등록일: ]
[최종 수정일: 9/30/2015]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2019-12-16 01시07분
[캬] 캬 그렇군요
[guest]

1  2  3  4  5  [6]  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
420정성태10/10/20111251910월의 어느 멋진날에 - 김동규, 임금희 (사)김자경오페라단
419정성태9/15/201114498MSDN 구독자 대상으로 Windows 8 (Server / Client) Preview 버전 공개 [2]
418정성태9/11/201113572Adobe Acrobat Updater Failed Error 1625
417정성태8/26/201115379개발자 도구 스크립트 사용 안 함 메뉴 비활성 문제
416정성태8/24/201113029이런 댓글은 사양합니다. [5]
415정성태8/14/201114109NTFS 폴더에 매핑된 디스크를 삭제하는 방법 [2]
414정성태7/9/201113385커피 전문 브랜드 소개 - 로스터스 마크
413정성태7/8/201113707제 트위터에 적용해 본 소셜 키워드 그래프
412정성태5/28/201115557Windows Thin PC 관심 증가?
411정성태5/26/201118117Dell Studio 1557 - Hyper Threading 기능 제거 [1]
410정성태5/25/201119507인터넷 익스플로러 - FTP 파일 다운로드 오류
409정성태5/22/201124088KT 크린 아이에 의해서 차단된 웹 사이트 바로 잡기 [1]
408정성태5/18/201139729SoftCamp Secure KeyStroke 4.0 <vista> 무한 설치 시도 문제
407정성태5/16/201114456DisplayLink - Unable to save display settings
406정성태5/13/201112838제 웹 사이트가 Trend Micro - Internet Security 제품에서 악성 사이트로 분류되고 있습니다. [3]
405정성태4/23/201116340디스크 사용량과 파일 사용량이 틀린 경우 [1]
404정성태4/23/201119317WACOM 태블릿 - 풍선 도움말(Ctrl, Shift...) 없애는 방법 [4]
403정성태4/23/201119427윈도우 탐색기의 "새로 만들기" 메뉴에 "텍스트 문서"로 생성되는 기본 파일 변경파일 다운로드1
401정성태4/22/201117746윈도우 탐색기의 "새로 만들기" 메뉴에 "텍스트 문서" 메뉴가 없는 경우파일 다운로드1
402정성태4/22/201116138    답변글 txt 파일을 탐색기에서 열 때, 메모장으로 열리지 않는 문제
400정성태4/18/201112784샐리던트!
399정성태4/6/201121660이런 질문 공세에 답변을 하실 수 있는 분...? [5]
398정성태3/29/201115604ATI 그래픽 카드가 장착된 컴퓨터에서 IE 9 동영상 재생 문제 [2]
397정성태3/28/201118047능엄주(Surangama mantra)를 외다, 채식을 하다
396정성태3/26/201120598비정상적인 "System Volume Information" 폴더 사용량
395정성태3/24/201117025윈도우 7/R2 - C 드라이브 용량이 부족해 SP1 설치가 안된다면?
1  2  3  4  5  [6]  7  8  9  10  11  12  13  14  15  ...