저 자 : 양성봉 / 쪽 수 : 328쪽 / 크 기 : 188 * 259 * 15 mm /677g / ISBN : 9788970505299 / 출간일 : 2022년 01월 10일 출간








목 차


Part 1 알고리즘으로 생각하기에 앞서


알고리즘이 무엇인가를 알아보고, 알고리즘의 수행 시간의 분석 및 점근 표기법을 소개하며, 이 책에 수록된 파이썬 프로그램을 이해하는 데 필요한 파이썬 언어의 기본 지식에 대해 살펴본다.



Part 2 순환과 기본적인 자료구조


알고리즘과 자료구조의 관계와 자료구조의 필요성을 알아보고, 알고리즘 또는 프로그램에서 사용되는 함수가 함수 자신을 호출하는 순환(recursion)을 설명하고, 단순 연결 리스트, 스택, 큐, 이진 트리, 이진 힙, 그래프 등의 기본 자료구조를 소개한다.



Part 3 ... 더보기


Part 1 알고리즘으로 생각하기에 앞서


알고리즘이 무엇인가를 알아보고, 알고리즘의 수행 시간의 분석 및 점근 표기법을 소개하며, 이 책에 수록된 파이썬 프로그램을 이해하는 데 필요한 파이썬 언어의 기본 지식에 대해 살펴본다.



Part 2 순환과 기본적인 자료구조


알고리즘과 자료구조의 관계와 자료구조의 필요성을 알아보고, 알고리즘 또는 프로그램에서 사용되는 함수가 함수 자신을 호출하는 순환(recursion)을 설명하고, 단순 연결 리스트, 스택, 큐, 이진 트리, 이진 힙, 그래프 등의 기본 자료구조를 소개한다.



Part 3 나누어 풀어보기


분할 정복(Divide-and-Conquer) 알고리즘으로 해결되는 n-비트 이진수 곱하기, 퀵 정렬, 합병 정렬, K번째 작은 수, 가장 가까운 두 점 찾기에 대한 알고리즘들을 설명한다.



Part 4 욕심내어 풀어보기


그리디(Greedy) 알고리즘은 하향식(top-down) 방식으로 최적화(최댓값 또는 최솟값을 찾는) 문제를 해결하는 알고리즘이다. 구간 스케줄링(Interval Scheduling), 구간 분할(Interval Partitioning) 문제, 초 증가 순서(Super Increasing Sequence), 최소 신장 트리, 최단 경로, 허프만 코딩을 해결하기 위한 그리디 알고리즘을 각각 소개한다.



Part 5 작은 것들부터 풀어보기


가장 긴 증가 순서, 벨만-포드(Bellman-Ford) 최단 경로 알고리즘, 서열 정렬(Sequence Alignment), 합이 최대 K 되는 숫자, 배낭 문제를 해결하기 위한 동적 계획(Dynamic Programming) 알고리즘을 소개한다.



Part 6 되돌아가며 풀어보기


해를 찾는데 지수 시간이 소요되는 N P-완전 문제들 을 해결하는 백트래킹(B ack tracking)과 분기 한정(Branch-and-Bound) 알고리즘을 소개한다. 이 Part에서는 그래프 색칠하기, 여왕 말 문제, 합이 K 되는 숫자, 배낭 문제를 차례로 다룬다.



Part 7 근사하게 풀어보기


대표적인 NP-완전 문제들에 대한 근사해를 찾는 근사 알고리즘(Approx imation Algorithms)들을 소개한다. 이 Part에서는 외판원 문제, 집합 커버, 통 채우기, 합이 최대 K 되는 숫자 문제를 다룬다.



부록


파이썬 메모리, 단순 연결 리스트를 위한 파이썬 프로그램, 마스터 정리, NP-완전 문제들이 설명된다. 닫기