알고리즘 문제 해결 전략
전2권
구종만 (지은이) | 인사이트 | 2012-11-14
정보
리뷰 (0)
스토리 (0)
카테고리
국내도서 > 컴퓨터/모바일 > 컴퓨터공학 > 자료구조/알고리즘
페이지 수
1062
내가 읽는데 걸리는 시간
앱에서 이용해주세요
책소개
프로그래밍 대회 문제를 풀면서 각종 알고리즘 설계 기법과 자료 구조에 대해 배우고, 나아가 문제 해결 능력까지 키울 수 있도록 구성되어 있다. 각 장에는 독자가 스스로 프로그램을 작성해서 채점받을 수 있는 연습 문제들이 포함되어 있다.
목차
1장 문제 해결과 프로그래밍 대회 __1.1 도입 __1.2 프로그래밍 대회 __1.3 이 책을 읽는 방법 __1.4 국내에서 참가할 수 있는 프로그래밍 대회들 __1.5 대회 준비를 위한 조언 __1.6 더 읽을 거리 2장 문제 해결 개관 __2.1 도입 __2.2 문제 해결 과정 __2.3 문제 해결 전략 __2.4 더 읽을거리 3장 코딩과 디버깅에 관하여 __3.1 도입: 코딩의 중요성을 간과하지 말라 __3.2 좋은 코드를 짜기 위한 원칙 __3.3 자주 하는 실수 __3.4 디버깅과 테스팅 __3.5 변수 범위의 이해 __3.6 실수 자료형의 이해(optional) __3.7 더 읽을 거리 4장 알고리즘의 시간 복잡도 분석 __4.1 도입 __4.2 선형 시간 알고리즘 __4.3 선형 이하 시간 알고리즘 __4.4 지수 시간 알고리즘 __4.5 시간 복잡도 __4.6 수행 시간 어림짐작하기 __4.7 계산 복잡도 클래스: P, NP, NP-완비 __4.8 더 읽을 거리 5장 알고리즘의 정당성 증명 __5.1 도입 __5.2 수학적 귀납법과 반복문 불변식 __5.3 귀류법 __5.4 다른 기술들 __5.5 더 읽을 거리 6장 무식하게 풀기 __6.1 도입 __6.2 재귀 호출과 완전 탐색 __6.3 문제: 소풍 (난이도: 하, 문제 ID: PICNIC) __6.4 풀이: 소풍 __6.5 문제: 게임판 덮기 (난이도: 하, 문제 ID: BOARDCOVER) __6.6 풀이: 게임판 덮기 __6.7 최적화 문제 __6.8 문제: 시계 맞추기 (난이도: 중, 문제 ID: CLOCKSYNC) __6.9 풀이: 시계 맞추기 __6.10 많이 등장하는 완전 탐색 유형 7장 분할 정복 __7.1 도입 __7.2 문제: 쿼드 트리 뒤집기 (문제 ID: QUADTREE, 난이도: 하) __7.3 풀이: 쿼드 트리 뒤집기 __7.4 문제: 울타리 잘라내기 (문제 ID: FENCE, 난이도: 중) __7.5 풀이: 울타리 잘라내기 __7.6 문제: 팬 미팅 (문제 ID: FANMEETING, 난이도: 상) __7.7 풀이: 팬 미팅 8장 동적 계획법 __8.1 도입 __8.2 문제: 와일드카드 (문제 ID: WILDCARD, 난이도: 중) __8.3 풀이: 와일드카드 __8.4 전통적 최적화 문제들 __8.5 문제: 합친 LIS (문제 ID: JLIS, 난이도: 하) __8.6 풀이: 합친 LIS __8.7 문제: 원주율 외우기 (문제 ID: PI, 난이도: 하) __8.8 풀이: 원주율 외우기 __8.9 문제: Quantization (문제 ID: QUANTIZE, 난이도: 중) __8.10 풀이: Quantization __8.11 경우의 수와 확률 __8.12 문제: 비대칭 타일링 (문제 ID: ASYMTILING, 난이도: 하) __8.13 풀이: 비대칭 타일링 __8.14 문제: 폴리오미노 (문제 ID: POLY, 난이도: 중) __8.15 풀이: 폴리오미노 __8.16 문제: 두니발 박사의 탈옥 (문제 ID: NUMB3RS, 난이도: 중) __8.17 풀이: 두니발 박사의 탈옥 9장 동적 계획법 테크닉 __9.1 최적화 문제의 실제 답 계산하기 __9.2 문제: 여행 짐 싸기 (문제 ID: PACKING, 난이도: 중) __9.3 풀이: 여행 짐 싸기 __9.4 문제: 광학 문자 인식 (문제 ID: OCR, 난이도: 상) __9.5 풀이: 광학 문자 인식 __9.6 k번째 답 계산하기 __9.7 문제: k번째 최대 증가 부분 수열 (문제 ID: KLIS, 난이도: 상) __9.8 풀이: k번째 최대 증가 부분 수열 __9.9 문제: 드래곤 커브 (문제 ID: DRAGON, 난이도: 중) __9.10 풀이: 드래곤 커브 __9.11 정수 이외의 입력에 대한 메모이제이션 __9.12 문제: 웨브바짐 (문제 ID: ZIMBABWE, 난이도: 상) __9.13 풀이: 웨브바짐 __9.14 문제: 실험 데이터 복구하기 (문제 ID: RESTORE, 난이도: 중) __9.15 풀이: 실험 데이터 복구하기 __9.16 조합 게임 __9.17 문제: 숫자 게임 (문제 ID: NUMBERGAME, 난이도: 하) __9.18 풀이: 숫자 게임 __9.19 문제: 블록 게임 (문제 ID: BLOCKGAME, 난이도: 중) __9.20 풀이: 블록 게임 __9.21 반복적 동적 계획법 __9.22 문제: 회전초밥 (문제 ID: SUSHI, 난이도: 중) __9.23 풀이: 회전초밥 __9.24 문제: 지니어스 (문제 ID: GENIUS, 난이도: 중) __9.25 풀이: 지니어스 __9.26 더 읽을 거리 10장 탐욕법 __10.1 도입 __10.2 문제: 도시락 데우기 (문제 ID: LUNCHBOX, 난이도: 하) __10.3 풀이: 도시락 데우기 __10.4 문제: 문자열 합치기 (문제 ID: STRJOIN, 난이도: 중) __10.5 풀이: 문자열 합치기 __10.6 문제: 미나스 아노르 (문제 ID: MINASTIRITH, 난이도: 상) __10.7 풀이: 미나스 아노르 11장 조합 탐색 __11.1 도입 __11.2 조합 탐색 기법들 __11.3 문제: 게임판 덮기 2 (문제 ID: BOARDCOVER2, 난이도: 하) __11.4 풀이: 게임판 덮기 2 __11.5 문제: 알러지가 심한 친구들 (문제 ID: ALLERGY, 난이도: 중) __11.6 풀이: 알러지가 심한 친구들 __11.7 문제: 카쿠로 (문제 ID: KAKURO2, 난이도: 중) __11.8 풀이: 카쿠로 __11.9 더 읽을거리 12장 최적화 문제 결정 문제로 바꿔 풀기 __12.1 도입 __12.2 문제: 남극 기지 (문제 ID: ARCTIC, 난이도: 하) __12.3 풀이: 남극 기지 __12.4 문제: 캐나다 여행 (문제 ID: CANADATRIP, 난이도: 중) __12.5 풀이: 캐나다 여행 __12.6 문제: 수강 철회 (문제 ID: WITHDRAWAL, 난이도: 상) __12.7 풀이: 수강 철회 13장 수치 해석 __13.1 도입 __13.2 이분법 __13.3 문제: 승률 올리기 (문제 ID: RATIO, 난이도: 하) __13.4 풀이: 승률 올리기 __13.5 삼분 검색 __13.6 문제: 꽃가루 화석 (문제 ID: FOSSIL, 난이도: 상) __13.7 풀이: 꽃가루 화석 __13.8 다른 주제들 14장 정수론 __14.1 도입 __14.2 소수 __14.3 문제: 비밀번호 486 (문제 ID: PASS486, 난이도: 중) __14.4 풀이: 비밀번호 486 __14.5 유클리드 알고리즘 __14.6 문제: 마법의 약 (문제 ID: POTION, 난이도: 중) __14.7 풀이: 마법의 약 __14.8 모듈라 연산 __14.9 더 읽을거리(optional) 15장 계산 기하 __15.1 도입 __15.2 계산 기하의 도구들 __15.3 교차와 거리, 면적 __15.4 문제: 핀볼 시뮬레이션 (문제 ID: PINBALL, 난이도: 상) __15.5 풀이: 핀볼 시뮬레이션 __15.6 다각형 __15.7 문제: 보물섬 (문제 ID: TREASURE, 난이도: 상) __15.8 풀이: 보물섬 __15.9 문제: 너드인가, 너드가 아닌가? (문제 ID: NERDS, 난이도: 중) __15.10 풀이: 너드인가, 너드가 아닌가? __15.11 계산 기하 알고리즘 디자인 패턴 __15.12 자주 하는 실수와 유의점들 __15.13 더 읽을거리 16장 비트마스크 __16.1 도입 __16.2 비트마스크를 이용한 집합의 구현 __16.3 비트마스크의 응용 예제 __16.4 문제: 졸업 학기 (문제 ID: GRADUATION, 난이도: 중) __16.5 풀이: 졸업 학기 __16.6 더 읽을거리 17장 부분 합 __17.1 도입 __17.2 문제: 크리스마스 인형 (문제 ID: CHRISTMAS, 난이도: 중) __17.3 풀이: 크리스마스 인형 __17.4 더 공부할 거리 18장 선형 자료 구조 __18.1 도입 __18.2 동적 배열 __18.3 연결 리스트 __18.4 동적 배열과 연결 리스트의 비교 __18.5 문제: 조세푸스 문제 (문제 ID: JOSEPHUS, 난이도: 하) __18.6 풀이: 조세푸스 문제 __18.7 더 읽을 거리 19장 큐와 스택, 데크 __19.1 도입 __19.2 큐와 스택, 데크의 구현 __19.3 스택과 큐의 활용 __19.4 문제: 짝이 맞지 않는 괄호 (문제 ID: BRACKETS2, 난이도: 하) __19.5 풀이: 짝이 맞지 않는 괄호 __19.6 문제: 외계 신호 분석 (문제 ID: ITES, 난이도: 중) __19.7 풀이: 외계 신호 분석 20장 문자열 __20.1 도입 __20.2 문자열 검색 __20.3 문제: 재하의 금고 (문제 ID: JAEHASAFE, 난이도: 중) __20.4 풀이: 재하의 금고 __20.5 접미사 배열 __20.6 문제: 말버릇 (문제 ID: HABIT, 난이도: 중) __20.7 풀이: 말버릇 __20.8 더 읽을거리 21장 트리의 구현과 순회 __21.1 도입 __21.2 트리의 순회 __21.3 문제: 트리 순회 순서 변경 (문제 ID: TRAVERSAL, 난이도: 하) __21.4 풀이: 트리 순회 순서 변경 __21.5 문제: 요새 (문제 ID: FORTRESS, 난이도: 중) __21.6 풀이: 요새 22장 이진 검색 트리 __22.1 도입 __22.2 이진 검색 트리의 정의와 조작 __22.3 시간 복잡도 분석과 균형 잡힌 이진 검색 트리 __22.4 문제: 너드인가, 너드가 아닌가? 2 (문제 ID: NERD2, 난이도: 중) __22.5 풀이: 너드인가, 너드가 아닌가? 2 __22.6 균형 잡힌 이진 검색 트리 직접 구현하기: 트립 __22.7 문제: 삽입 정렬 뒤집기 (문제 ID: INSERTION, 난이도: 중) __22.8 풀이: 삽입 정렬 뒤집기 23장 우선순위 큐와 힙 __23.1 도입 __23.2 힙의 정의와 구현 __23.3 문제: 변화하는 중간 값 (문제 ID: RUNNINGMEDIAN, 난이도: 하) __23.4 풀이: 변화하는 중간 값 24장 구간 트리 __24.1 구간 트리: 구간에 대한 질문 대답하기 __24.2 문제: 등산로 (문제 ID: MORDOR, 난이도: 중) __24.3 풀이: 등산로 __24.4 문제: 족보 탐험 (문제 ID: FAMILYTREE, 난이도: 상) __24.5 풀이: 족보 탐험 __24.6 펜윅 트리: 빠르고 간단한 구간 합 __24.7 문제: 삽입 정렬 시간 재기 (문제 ID: MEASURETIME, 난이도: 중) __24.8 풀이: 삽입 정렬 시간 재기 25장 상호 배타적 집합 __25.1 도입 __25.2 문제: 에디터 전쟁 (문제 ID: EDITORWARS, 난이도: 중) __25.3 풀이: 에디터 전쟁 26장 트라이 __26.1 도입 __26.2 문제: 안녕히, 그리고 물고기는 고마웠어요! (문제 ID: SOLONG, 난이도: 중) __26.3 풀이: 안녕히, 그리고 물고기는 고마웠어요! __26.4 트라이를 이용한 다중 문자열 검색 __26.5 문제: 보안종결자 (문제 ID: NH, 난이도: 상) __26.6 풀이: 보안종결자 27장 그래프의 표현과 정의 __27.1 도입 __27.2 그래프의 사용 예 __27.3 암시적 그래프 구조들 __27.4 그래프의 표현 방법 28장 그래프의 깊이 우선 탐색 __28.1 도입 __28.2 문제: 고대어 사전 (문제 ID: DICTIONARY, 난이도: 하) __28.3 풀이: 고대어 사전 __28.4 오일러 서킷 __28.5 문제: 단어 제한 끝말잇기 (문제 ID: WORDCHAIN, 난이도: 하) __28.6 풀이: 단어 제한 끝말잇기 __28.7 이론적 배경과 응용 __28.8 문제: 감시 카메라 설치 (문제 ID: GALLERY, 난이도: 중) __28.9 풀이: 감시 카메라 설치 __28.10 문제: 회의실 배정 (문제 ID: MEETINGROOM, 난이도: 상) __28.11 풀이: 회의실 배정 29장 그래프의 너비 우선 탐색 __29.1 도입 __29.2 문제: Sorting Game (문제 ID: SORTGAME, 난이도: 중) __29.3 풀이: Sorting Game __29.4 문제: 어린이날 (문제 ID: CHILDRENDAY, 난이도: 상) __29.5 풀이: 어린이날 __29.6 최단 경로 전략 __29.7 문제: 하노이의 탑 (문제 ID: HANOI4B, 난이도: 중) __29.8 풀이: 하노이의 탑 30장 최단 경로 알고리즘 __30.1 도입 __30.2 다익스트라의 최단 경로 알고리즘 __30.3 문제: 신호 라우팅 (문제 ID: ROUTING, 난이도: 하) __30.4 풀이: 신호 라우팅 __30.5 문제: 소방차 (문제 ID: FIRETRUCKS, 난이도: 중) __30.6 풀이: 소방차 __30.7 문제: 철인 N종 경기 (문제 ID: NTHLON, 난이도: 상) __30.8 풀이: 철인 N종 경기 __30.9 벨만-포드의 최단 경로 알고리즘 __30.10 문제: 시간여행 (문제 ID: TIMETRIP, 난이도: 중) __30.11 풀이: 시간여행 __30.12 플로이드의 모든 쌍 최단 거리 알고리즘 __30.13 문제: 음주 운전 단속 (문제 ID: DRUNKEN, 난이도: 중) __30.14 풀이: 음주 운전 단속 __30.15 문제: 선거 공약 (문제 ID: PROMISES, 난이도: 중) __30.16 풀이: 선거 공약 31장 최소 스패닝 트리 __31.1 도입 __31.2 크루스칼의 최소 스패닝 트리 알고리즘 __31.3 프림의 최소 스패닝 트리 알고리즘 __31.4 문제: 근거리 네트워크 (문제 ID: LAN, 난이도: 하) __31.5 풀이: 근거리 네트워크 __31.6 문제: 여행 경로 정하기 (문제 ID: TPATH, 난이도: 상) __31.7 풀이: 여행 경로 정하기