똑똑한 코드 작성을 위한 실전 알고리즘 pdf 다운로드를 무료로 제공합니다 좀 더 똑똑한 코드로 프로그램 성능을 향상하고 싶다면 이 책을 펼쳐보자. 이 책은 소프트웨어 개발에서 가장 많이 활용되는 핵심 알고리즘을 각각 언제, 어떻게 사용하면 좋은지 단계별로 상세히 알려준다
관련 책 pdf 모음
책 소개
알고리즘 진행 과정을 시각화한 그림과 함께 예제 코드를 한 줄씩 알기 쉽게 설명하며, 성능을 직접 측정해볼 수 있도록 실행 가능한 코드를 제공한다. 장마다 수록한 연습 문제는 문제 해결 능력을 향상해 코딩 인터뷰를 준비하는 데도 도움이 된다. 전문 개발자뿐 아니라 자신의 연구 분야에 알고리즘을 적용하려는 사람 모두에게 유용하다. 컴퓨터 과학에 관한 배경지식이 없어도 프로그래밍 언어를 다뤄본 경험이 있으면 충분하다. 예제 설명과 샘플 코드는 직관적이고 접근성이 높은 파이썬으로 작성되었다. 다양한 문제에 대한 접근 방식과 풀이법을 살펴보면서 알고리즘의 원리부터 응용 방법까지 확실하게 익혀보자. 이 책은 정렬, 이진 탐색, 그래프 등 컴퓨터 과학에서 가장 많이 활용되는 핵심 알고리즘을 사용해 문제를 효율적으로 해결하는 방법을 알려줍니다. 어려운 수식이 아니라 간결한 파이썬 코드 및 대응되는 그림을 따라가면서 알고리즘의 원리를 쉽게 이해하도록 안내합니다. 알고리즘 구현 코드를 한줄 한줄 살펴보고 각 단계를 시각화한 도식과 함께 진행 과정을 차근차근 짚어봅니다. 예제 코드를 직접 실행한 성능 분석 표를 통해 서로 다른 알고리즘의 성능 측정치를 직관적으로 비교해보고, 마지막으로 연습 문제를 풀어보며 각 장에서 배운 내용을 응용해봅니다.
똑똑한 코드 작성 실전 알고리즘
CHAPTER 1 문제 해결
1.1 알고리즘이란
1.2 리스트에서 가장 큰 값 찾기
1.3 주요 연산 횟수 계산하기
1.4 모델로 알고리즘 성능 예측하기
1.5 리스트에서 가장 큰 두 수 찾기
1.6 토너먼트 알고리즘
1.7 시간 복잡도와 공간 복잡도
1.8 요약
1.9 연습 문제
CHAPTER 2 알고리즘 분석
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 연습 문제
CHAPTER 3 해싱
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 연습 문제
CHAPTER 4 힙
4.1 최대 이진 힙
4.2 (값, 우선순위) 삽입하기
4.3 우선순위가 가장 높은 값 제거하기
4.4 배열로 이진 힙 구성하기
4.5 엔트리 이동의 구현
4.6 요약
4.7 연습 문제
CHAPTER 5 정렬
5.1 교환을 통한 정렬
5.2 선택 정렬
5.3 성능이 O(N2)인 정렬 알고리즘의 구조
5.4 삽입 정렬과 선택 정렬의 성능
5.5 재귀와 분할 정복
5.6 병합 정렬
5.7 퀵 정렬
5.8 힙 정렬
5.9 O(NlogN) 알고리즘의 성능 비교하기
5.10 팀 정렬
5.11 요약
5.12 연습 문제
CHAPTER 6 이진 트리
6.1 시작하기
6.2 이진 탐색 트리
6.3 이진 탐색 트리에서 값 탐색하기
6.4 이진 탐색 트리에서 값 제거하기
6.5 이진 탐색 트리 순회하기
6.6 이진 탐색 트리 성능 분석하기
6.7 자가 균형 이진 트리
6.8 자가 균형 이진 트리 성능 분석하기
6.9 이진 탐색 트리를 (키, 값) 심볼 테이블로 사용하기
6.10 이진 탐색 트리를 우선순위 큐로 사용하기
6.11 요약
6.12 연습 문제
CHAPTER 7 그래프
7.1 그래프로 문제 모델링하기
7.2 깊이 우선 탐색으로 미로 풀기
7.3 너비 우선 탐색으로 미로 풀기
7.4 유향 그래프
7.5 가중치 그래프
7.6 다익스트라 알고리즘
7.7 모든 쌍의 최단 경로 문제
7.8 플로이드-워셜 알고리즘
7.9 요약
7.10 연습 문제
CHAPTER 8 정리
8.1 파이썬 내장 데이터 타입
8.2 스택 구현하기
8.3 큐 구현하기
8.4 힙과 우선순위 큐 구현
8.5 이후 학습