이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
1장 자료 구조가 중요한 이유 11.1 자료 구조 21.2 배열: 기본 자료 구조 31.3 속도 측정 51.4 읽기 61.5 검색 91.6 삽입 111.7 삭제 141.8 집합: 단일 규칙이 효율성에 미치는 영향 151.9 마무리 191.10 연습 문제 192장 알고리즘이 중요한 이유 212.1 순서가 있는 배열 222.2 순서가 있는 배열 검색하기 252.3 이진 검색 272.4 이진 검색 vs 선형 검색 312.5 마무리 342.6 연습 문제 343장 빅 오 표기법 353.1 빅 오: 데이터 요소가 N개일 때 알고리즘은 몇 단계가 필요할까? 363.2 빅 오의 본질 373.3 세 번째 유형의 알고리즘 403.4 로그 423.5 O(log N) 알아보기 433.6 실제 예제 443.7 마무리 463.8 연습 문제 464장 빅 오로 코드 속도 향상하기 494.1 버블 정렬 494.2 버블 정렬의 실제 사용 514.3 버블 정렬의 효율성 584.4 이차 문제 604.5 선형 솔루션 624.6 마무리 654.7 연습 문제 655장 빅 오를 사용하거나 사용하지 않는 최적화 675.1 선택 정렬 675.2 선택 정렬의 실제 사용 685.3 선택 정렬의 효율성 755.4 상수 무시하기 765.5 빅 오의 범주 785.6 마무리 815.7 연습 문제 826장 낙관적인 시나리오를 위한 최적화 856.1 삽입 정렬 856.2 삽입 정렬의 실제 사용 876.3 삽입 정렬의 효율성 946.4 평균적인 경우 966.5 실제 예제 986.6 마무리 1016.7 연습 문제 1017장 일상적인 코드에서의 빅 오 1037.1 짝수의 평균 1047.2 단어 생성기 1057.3 배열 샘플 1077.4 평균 섭씨 온도 1087.5 의류 상표 1097.6 1의 개수 세기 1107.7 회문 검사기 1117.8 모든 곱 구하기 1127.9 여러 데이터세트 처리하기 1147.10 비밀번호 크래커 1157.11 마무리 1187.12 연습 문제 1188장 해시 테이블을 사용한 초고속 조회 1238.1 해시 테이블 1248.2 해시 함수로 해싱하기 1258.3 재미와 이익, 특히 이익을 위한 시소러스 만들기 1268.4 해시 테이블 조회 1288.5 충돌 처리하기 1308.6 효율적인 해시 테이블 만들기 1338.7 데이터 구성을 위한 해시 테이블 1358.8 속도 향상을 위한 해시 테이블 1378.9 마무리 1428.10 연습 문제 1429장 스택과 큐로 간결한 코드 작성하기 1459.1 스택 1459.2 추상 데이터 타입 1489.3 스택의 실제 사용 1509.4 코드 구현: 스택 기반 코드 린터 1539.5 제약이 있는 자료 구조의 중요성 1569.6 큐 1579.7 큐의 실제 사용 1599.8 마무리 1619.9 연습 문제 16110장 재귀를 사용한 재귀적 반복 16310.1 루프 대신 재귀 16310.2 기저 조건 16510.3 재귀 코드 읽기 16610.4 컴퓨터의 눈으로 본 재귀 16910.5 파일시스템 순회 17210.6 마무리 17410.7 연습 문제 17411장 재귀적으로 작성하는 법 17711.1 재귀 범주: 반복 실행 17711.2 재귀 범주: 계산 18211.3 하향식 재귀: 새로운 사고방식 18511.4 계단 문제 19111.5 애너그램 생성 19511.6 마무리 19911.7 연습 문제 20012장 동적 프로그래밍 20312.1 불필요한 재귀 호출 20312.2 빅 오를 위한 작은 개선 20712.3 재귀의 효율성 20812.4 중복 하위 문제 20912.5 메모이제이션을 통한 동적 프로그래밍 21112.6 상향식 접근법을 통한 동적 프로그래밍 21412.7 마무리 21712.8 연습 문제 21713장 속도를 높이는 재귀 알고리즘 21913.1 분할 22013.2 퀵 정렬 22513.3 퀵 정렬의 효율성 23213.4 퀵 정렬의 최악의 시나리오 23713.5 퀵 셀렉트 23813.6 다른 알고리즘의 핵심인 정렬 24213.7 마무리 24413.8 연습 문제 24414장 노드 기반 자료 구조 24714.1 연결 리스트 24714.2 연결 리스트 구현하기 24914.3 읽기 25114.4 검색 25414.5 삽입 25514.6 삭제 25914.7 연결 리스트 연산의 효율성 26214.8 연결 리스트의 실제 사용 26214.9 이중 연결 리스트 26314.10 이중 연결 리스트 기반 큐 26614.11 마무리 26814.12 연습 문제 26815장 이진 탐색 트리로 속도 향상 27115.1 트리 27215.2 이진 탐색 트리 27415.3 검색 27515.4 삽입 28015.5 삭제 28515.6 이진 탐색 트리의 실제 사용 29615.7 이진 탐색 트리 순회 29615.8 마무리 30115.9 연습 문제 30116장 힙으로 우선순위 관리하기 30316.1 우선순위 큐 30316.2 힙 30516.3 힙 속성 30816.4 힙 삽입 30916.5 마지막 노드 찾기 31116.6 힙 삭제 31216.7 힙 vs 순서가 있는 배열 31616.8 다시 보는 마지막 노드 문제 31716.9 배열로 힙 구현하기 31916.10 힙으로 구현하는 우선순위 큐 32616.11 마무리 32616.12 연습 문제 32717장 트라이를 알아 둬서 나쁠 건 없다 32917.1 트라이 33017.2 단어 저장하기 33217.3 트라이 검색 33517.4 트라이 검색의 효율성 33917.5 트라이 삽입 33917.6 자동 완성 기능 개발하기 34417.7 자동 완성 기능 완료하기 35017.8 값을 포함하는 트라이: 더 개선된 자동 완성 기능 35017.9 마무리 35217.10 연습 문제 35218장 그래프 하나로 전부 연결하기 35518.1 그래프 35618.2 방향 그래프 35818.3 객체 지향 그래프 구현 35918.4 그래프 탐색 36118.5 깊이 우선 탐색 36318.6 너비 우선 탐색 37318.7 그래프 탐색의 효율성 38618.8 가중 그래프 38918.9 데이크스트라 알고리즘 39318.10 마무리 41018.11 연습 문제 41119장 공간 제약 처리하기 41519.1 공간 복잡도의 빅 오 41519.2 시간과 공간의 트레이드오프 41819.3 재귀의 숨겨진 비용 42119.4 마무리 42319.5 연습 문제 42420장 코드 최적화 기법 42720.1 전제 조건: 현재 빅 오 파악하기 42720.2 시작하기: 상상할 수 있는 최고의 빅 오 42820.3 마법의 조회 42920.4 패턴 인식하기 43720.5 탐욕 알고리즘 44520.6 자료 구조 변경하기 45720.7 마무리 46420.8 작별 인사 46420.9 연습 문제 465부록 A 연습 문제 해답 469찾아보기 505
|
Jay Wengrow
제이 웬그로우의 다른 상품
심재철의 다른 상품
|
알고리즘이 어려운 게 아니라 설명이 문제다자료 구조와 알고리즘을 설명하는 책은 주로 전문 용어나 수학적 개념이 반복되어 비전공자나 초보자에게는 어렵게 느껴진다. 하지만 자료 구조와 알고리즘은 대부분 상식선에서 이해할 수 있다. 수학적 표기 방식도 그저 하나의 언어일 뿐이며 수학으로 다루는 모든 내용도 상식적으로 설명할 수 있다. 이제 상식이 통하는, 일상 언어 같은 설명으로 자료 구조와 알고리즘을 간단하게 이해해 보자.이해는 말로, 학습은 손끝으로 시작한다자료 구조와 알고리즘을 배우기 어려워하는 또 다른 이유는 이론 위주의 설명 때문이다. 읽고 이해했다고 생각했지만 막상 코딩하려면 손이 멈췄던 경험이 누구나 있을 것이다. 개념적 이해만으로는 충분하지 않으며 코드를 작성하면서 배워야 진정한 학습이 된다. 귀찮게 여기지 말고 한 줄 한 줄 코드를 작성해 보면서 실전 감각을 키우자.비전공자를 위한 입문서지만 취준생에게도 통한다입사 면접에서는 단순히 정답을 맞추느냐가 중요한 게 아니다. 왜 이 자료 구조를 썼는지, 시간 복잡도는 어떤지, 다른 방식보다 선택한 자료 구조가 더 효율적인 이유가 무엇인지 설명할 수 있어야 한다. 비밀번호 크래커, 소셜 네트워크에서 친구 찾기, 최저가 항공권 찾기, 도서관 소프트웨어 등 현실에 있을 법한 실용적인 예제들로 어떤 자료 구조를 선택해야 효율성이 극대화되는지, 기존의 알고리즘을 어떻게 개선하면 성능이 향상되는지 함께 연습할 수 있다.이 책에서 다루는 내용○자료 구조와 알고리즘이 중요한 이유 ○빅 오 표기법으로 알고리즘의 효율성 파악하기○코드 효율성을 높이는 자료 구조 ○우아한 코드를 위한 재귀 알고리즘○엄청난 성능을 자랑하는 노드 기반 자료 구조들○메모리 효율성을 판단하는 공간 복잡도○몇 가지 코드 최적화 기법대상 독자○알고리즘 전공서가 어려운 대학생○취업 준비가 한창인 면접 준비자○코딩은 되지만 알고리즘은 부족한 실무자
|