안내
확인
U
회원관리
로그인
가입
찾기
회원아이디
패스워드
로그인유지
회원아이디
이름
이메일
휴대폰번호
패스워드
패스워드 재입력
회원이용약관 및 개인정보 취급방침에 동의 합니다
회원이용약관 보기
개인정보처리방침 보기
본인 이름 입력
회원가입시 이메일 입력
알고리즘 기초 가이드: 이 책 한 권이면 끝!
실전에서 활용할 수 있는 알고리즘
와이웨이브이퍼블리싱
|
박빈
|
2025-02-03
12
읽음
0
0
0
5 / 177 목차보기
이전
5 / 177 목차
다음
로그인
회원가입
와
와이드웨이브
저자소개
서평
실용적인 알고리즘 학습을 위한 완벽한 길잡이
비전공자도 쉽게 접근할 수 있는 구성
실전에서 활용할 수 있는 알고리즘
결론: 이 책이 필요한 사람들
출판사평
이 책의 특징
Chapter 1: 알고리즘이란 무엇인가?
1. 알고리즘의 정의와 필요성
알고리즘(Algorithm) 정의
알고리즘의 필요성
실전 예제: 최대값 찾기
2. 알고리즘의 성능 평가 (시간 복잡도와 공간 복잡도)
시간 복잡도(Time Complexity)
공간 복잡도(Space Complexity)
실전 예제: 배열의 합을 계산하는 두 가지 방법
3. 빅오 표기법(Big-O Notation)의 개념과 활용
빅오 표기법이란?
빅오 표기법의 종류
실전 예제: 빅오 분석
4. 최적의 알고리즘 설계 원칙
1) 분할 정복(Divide and Conquer)
2) 탐욕 알고리즘(Greedy Algorithm)
3) 동적 프로그래밍(Dynamic Programming)
4) 백트래킹(Backtracking)
실전 예제: 피보나치 수열 (동적 프로그래밍 vs 재귀)
결론
Chapter 2: 탐색(Search) 알고리즘
1. 선형 탐색(Linear Search)와 이진 탐색(Binary Search)
선형 탐색 (Linear Search)
이진 탐색 (Binary Search)
2. 점프 탐색(Jump Search)와 인터폴레이션 탐색(Interpolation Search)
점프 탐색 (Jump Search)
인터폴레이션 탐색 (Interpolation Search)
3. 익스포넨셜 탐색(Exponential Search)
4. 해시 탐색(Hash Search)와 블룸 필터(Bloom Filter)
해시 탐색 (Hash Search)
블룸 필터 (Bloom Filter)
결론
Chapter 3: 정렬(Sorting) 알고리즘
1. 기본 정렬 알고리즘 (버블 정렬, 선택 정렬, 삽입 정렬)
버블 정렬 (Bubble Sort)
선택 정렬 (Selection Sort)
삽입 정렬 (Insertion Sort)
2. 고급 정렬 알고리즘 (퀵 정렬, 병합 정렬, 힙 정렬)
퀵 정렬 (Quick Sort)
병합 정렬 (Merge Sort)
힙 정렬 (Heap Sort)
3. 기수 정렬(Radix Sort)과 계수 정렬(Counting Sort)
기수 정렬 (Radix Sort)
계수 정렬 (Counting Sort)
4. 정렬 알고리즘의 최적화 및 활용
Chapter 4: 분할 정복(Divide and Conquer)
1. 분할 정복 알고리즘의 개념과 필요성
분할 정복(Divide and Conquer) 개념
분할 정복의 3단계
분할 정복이 필요한 이유
2. 병합 정렬(Merge Sort)과 퀵 정렬(Quick Sort)의 동작 원리
병합 정렬(Merge Sort)
퀵 정렬(Quick Sort)
3. 이진 탐색(Binary Search)의 응용
이진 탐색(Binary Search)
응용 사례
4. 거듭제곱(Power)과 최근접 점 쌍(Closest Pair) 문제
거듭제곱(Power) 문제
최근접 점 쌍(Closest Pair) 문제
결론
Chapter 5: 탐욕 알고리즘(Greedy Algorithm)
1. 탐욕 알고리즘의 개념과 특징
탐욕 알고리즘(Greedy Algorithm) 개념
탐욕 알고리즘의 특징
탐욕 알고리즘의 장점과 단점
✅ 장점
❌ 단점
2. 최적해를 보장하는 조건
1) 탐욕 선택 속성(Greedy Choice Property)
2) 최적 부분 구조(Optimal Substructure)
3. 대표적인 탐욕 알고리즘 문제
1) 동전 거스름돈 문제
2) 회의실 배정 문제
4. 최소 신장 트리 (MST): 크루스칼(Kruskal) 및 프림(Prim) 알고리즘
최소 신장 트리(MST, Minimum Spanning Tree)란?
1) 크루스칼 알고리즘(Kruskal’s Algorithm)
2) 프림 알고리즘(Prim’s Algorithm)
결론
Chapter 6: 동적 프로그래밍(Dynamic Programming)
1. 동적 프로그래밍의 개념과 메모이제이션(Memoization)
동적 프로그래밍(DP)의 개념
DP의 핵심 개념
메모이제이션(Memoization) vs. 탑다운(Top-Down)과 바텀업(Bottom-Up)
2. 피보나치 수열과 최적 부분 구조의 개념
최적 부분 구조(Optimal Substructure)
3. 배낭 문제(Knapsack Problem)와 최장 공통 부분 수열(LCS)
0/1 배낭 문제 (0/1 Knapsack Problem)
최장 공통 부분 수열 (Longest Common Subsequence, LCS)
4. DP 테이블 최적화 및 상태 압축 기법
1) 공간 최적화: 1차원 배열 사용
2) 상태 압축(State Compression)
결론
Chapter 7: 백트래킹(Backtracking)
1. 백트래킹의 개념과 기본 원리
백트래킹(Backtracking)이란?
백트래킹의 동작 원리
2. 대표적인 백트래킹 문제 (N-Queen, 미로 찾기)
1) N-Queen 문제
2) 미로 찾기 (Maze Solving)
3. 부분 집합 생성 및 조합 생성
1) 부분 집합 생성
2) 조합 생성
4. 가지치기(Pruning) 기법과 최적화
가지치기(Pruning)란?
예제: N-Queen 문제에서 가지치기 적용
백트래킹 최적화 기법 요약
결론
Chapter 8: 그래프(Graph) 알고리즘
1. 그래프의 기본 개념 (정점, 간선, 인접 행렬 vs 인접 리스트)
그래프(Graph)란?
그래프의 표현 방법
2. 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)
깊이 우선 탐색(DFS, Depth First Search)
너비 우선 탐색(BFS, Breadth First Search)
3. 최소 신장 트리(MST) (크루스칼 & 프림 알고리즘)
1) 크루스칼 알고리즘(Kruskal’s Algorithm)
2) 프림 알고리즘(Prim’s Algorithm)
4. 위상 정렬(Topological Sort)과 강한 연결 요소(SCC)
위상 정렬(Topological Sort)
결론
Chapter 9: 최단 경로(Shortest Path) 알고리즘
1. 다익스트라(Dijkstra) 알고리즘과 벨만-포드(Bellman-Ford) 알고리즘
다익스트라(Dijkstra) 알고리즘
벨만-포드(Bellman-Ford) 알고리즘
2. 플로이드-워셜(Floyd-Warshall) 알고리즘
3. A* 탐색(A* Search) 알고리즘의 개념과 활용
4. 네트워크 경로 최적화 및 실전 응용
네트워크 경로 최적화 사례
실전 활용 예제: 네트워크 경로 최적화
결론
Chapter 10: 문자열 알고리즘 (String Algorithms)
1. 문자열 검색 알고리즘 (KMP, Rabin-Karp)
KMP (Knuth-Morris-Pratt) 알고리즘
Rabin-Karp 알고리즘
2. 접미사 배열(Suffix Array)과 트라이(Trie)
접미사 배열(Suffix Array)
트라이(Trie)
3. 롤링 해시(Rolling Hash)와 보이어-무어(Boyer-Moore) 알고리즘
롤링 해시(Rolling Hash)
보이어-무어(Boyer-Moore) 알고리즘
4. 문자열 압축과 편집 거리(Edit Distance)
문자열 압축 (Run-Length Encoding, RLE)
편집 거리(Edit Distance, Levenshtein Distance)
편집 거리 최적화 (O(n) 공간 사용)
Chapter 11: 고급 알고리즘과 실전 응용
1. 분할 정복과 세그먼트 트리(Segment Tree)
분할 정복(Divide and Conquer)
세그먼트 트리(Segment Tree)
2. 페르미 수 정리(Fermat's Theorem)와 모듈러 연산
페르미 수 정리(Fermat's Theorem)
3. 비트마스(Bitmask)와 비트 연산 알고리즘
비트마스(Bitmask) 개념
4. 알고리즘 최적화 및 시간 복잡도 개선 기법
메모이제이션(Memoization)과 동적 계획법(DP)
이진 지수법(Exponentiation by Squaring)
결론
Chapter 12: 실전 프로젝트 - 알고리즘 적용하기
1. 대규모 데이터 처리에서 알고리즘 선택하기
대규모 데이터 처리 개요
대규모 데이터 처리를 위한 알고리즘 선택 기준
2. 코딩 테스트 및 백준, 프로그래머스 문제 풀이 전략
코딩 테스트 필수 개념
효율적인 문제 풀이 전략
3. 실무에서의 알고리즘 최적화 사례
실무에서 성능 최적화를 위한 접근법
4. 알고리즘과 머신러닝, AI에서의 활용
알고리즘이 AI에서 활용되는 방식
결론
판 권