똑똑한 코드 작성을 위한 실전 알고리즘 (파이썬 예제로 문제 해결 전략 익히기)

똑똑한 코드 작성을 위한 실전 알고리즘 (파이썬 예제로 문제 해결 전략 익히기)

$21.05
Description
더 효율적이고 창의적인 코드 작성을 위한 알고리즘 사용법
어려운 개념이나 수식 없이 그림과 예제로 학습하기
좀 더 똑똑한 코드로 프로그램 성능을 향상하고 싶다면 이 책을 펼쳐보자. 이 책은 소프트웨어 개발에서 가장 많이 활용되는 핵심 알고리즘을 각각 언제, 어떻게 사용하면 좋은지 단계별로 상세히 알려준다. 알고리즘 진행 과정을 시각화한 그림과 함께 예제 코드를 한 줄씩 알기 쉽게 설명하며, 성능을 직접 측정해볼 수 있도록 실행 가능한 코드를 제공한다. 장마다 수록한 연습 문제는 문제 해결 능력을 향상해 코딩 인터뷰를 준비하는 데도 도움이 된다.
전문 개발자뿐 아니라 자신의 연구 분야에 알고리즘을 적용하려는 사람 모두에게 유용하다. 컴퓨터 과학에 관한 배경지식이 없어도 프로그래밍 언어를 다뤄본 경험이 있으면 충분하다. 예제 설명과 샘플 코드는 직관적이고 접근성이 높은 파이썬으로 작성되었다. 다양한 문제에 대한 접근 방식과 풀이법을 살펴보면서 알고리즘의 원리부터 응용 방법까지 확실하게 익혀보자.
저자

조지하이네만

(GeorgeHeineman)
소프트웨어엔지니어링및알고리즘분야에서20여년간경험을쌓은컴퓨터공학과교수다.『AlgorithmsinaNutshell,2nded.』(O’reilly,2016)의저자이며오라일리사파리에서〈ExploringAlgorithmsinPython〉,〈WorkingwithAlgorithmsinPython〉을비롯한동영상강의를다수제작했다.논리및수학퍼즐에관심이많아스도쿠의변형인Sujiken퍼즐과Trexagon퍼즐을발명했다.

목차

CHAPTER1문제해결
1.1알고리즘이란
1.2리스트에서가장큰값찾기
1.3주요연산횟수계산하기
1.4모델로알고리즘성능예측하기
1.5리스트에서가장큰두수찾기
1.6토너먼트알고리즘
1.7시간복잡도와공간복잡도
1.8요약
1.9연습문제

CHAPTER2알고리즘분석
2.1경험적모델로성능예측하기
2.2곱셈성능예측하기
2.3성능클래스
2.4점근적분석
2.5모든수행계산하기
2.6모든바이트계산하기
2.7이진배열탐색
2.8이진배열탐색으로리스트에서값찾기
2.9이진배열탐색의또다른기능
2.10알고리즘성능비교
2.11곡선피팅vs.상/하한
2.12요약
2.13연습문제

CHAPTER3해싱
3.1키와연관된값
3.2해시함수와해시코드
3.3(키,값)쌍에대한해시테이블구조
3.4선형조사로충돌검출및해결하기
3.5연결리스트를사용한분리연쇄법
3.6연결리스트에서엔트리삭제하기
3.7개방주소법과분리연쇄법평가하기
3.8동적해시테이블
3.9동적해시테이블성능분석하기
3.10완벽한해싱
3.11(키,값)쌍순회하기
3.12요약
3.13연습문제

CHAPTER4힙
4.1최대이진힙
4.2(값,우선순위)삽입하기
4.3우선순위가가장높은값제거하기
4.4배열로이진힙구성하기
4.5엔트리이동의구현
4.6요약
4.7연습문제

CHAPTER5정렬
5.1교환을통한정렬
5.2선택정렬
5.3성능이O(N2)인정렬알고리즘의구조
5.4삽입정렬과선택정렬의성능
5.5재귀와분할정복
5.6병합정렬
5.7퀵정렬
5.8힙정렬
5.9O(NlogN)알고리즘의성능비교하기
5.10팀정렬
5.11요약
5.12연습문제

CHAPTER6이진트리
6.1시작하기
6.2이진탐색트리
6.3이진탐색트리에서값탐색하기
6.4이진탐색트리에서값제거하기
6.5이진탐색트리순회하기
6.6이진탐색트리성능분석하기
6.7자가균형이진트리
6.8자가균형이진트리성능분석하기
6.9이진탐색트리를(키,값)심볼테이블로사용하기
6.10이진탐색트리를우선순위큐로사용하기
6.11요약
6.12연습문제

CHAPTER7그래프
7.1그래프로문제모델링하기
7.2깊이우선탐색으로미로풀기
7.3너비우선탐색으로미로풀기
7.4유향그래프
7.5가중치그래프
7.6다익스트라알고리즘
7.7모든쌍의최단경로문제
7.8플로이드-워셜알고리즘
7.9요약
7.10연습문제

CHAPTER8정리
8.1파이썬내장데이터타입
8.2스택구현하기
8.3큐구현하기
8.4힙과우선순위큐구현
8.5이후학습

출판사 서평

핵심만골라확실하게익히는파이썬알고리즘

알고리즘학습에서가장중요한것은문제해결능력입니다.단순히각알고리즘의기능을개별적으로만공부할것이아니라,특정문제가주어졌을때여러가지접근법을적용해보고서로다른알고리즘의성능을비교할수있어야합니다.

이책은정렬,이진탐색,그래프등컴퓨터과학에서가장많이활용되는핵심알고리즘을사용해문제를효율적으로해결하는방법을알려줍니다.어려운수식이아니라간결한파이썬코드및대응되는그림을따라가면서알고리즘의원리를쉽게이해하도록안내합니다.알고리즘구현코드를한줄한줄살펴보고각단계를시각화한도식과함께진행과정을차근차근짚어봅니다.예제코드를직접실행한성능분석표를통해서로다른알고리즘의성능측정치를직관적으로비교해보고,마지막으로연습문제를풀어보며각장에서배운내용을응용해봅니다.

예제와연습문제는파이썬으로작성되었습니다.파이썬코드는간결하고직관적이며다양한유형의문제에대응하기쉬워,기술면접이나시험을위해알고리즘을공부한다면파이썬이좋은선택지입니다.

대상독자
● 컴퓨터과학의핵심알고리즘을쉽게익히고싶은사람
● 코드를개선해프로그램성능을높이고싶은사람

주요내용
● 컴퓨터과학과소프트웨어공학의핵심알고리즘을살펴봅니다.
● 분할정복,동적프로그래밍,탐욕알고리즘등효율적인문제해결전략을학습합니다.
● 코드를분석하고빅오표기법을사용해시간복잡도를평가합니다.
● 파이썬라이브러리와자료구조를사용해알고리즘으로문제를해결합니다.
● 중요한여러알고리즘의주요단계를이해합니다.