로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

알고리즘 트레이닝: 프로그래밍 대회 입문 가이드

   
지은이 안티 라크소넨   |   출판사 Insight (인사이트)  |   발행일 2019년 05월 08일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 25,000원22,500원 10%
마일리지 5% 1,250원
발행일 2019-05-08
ISBN 8966262449 | 9788966262441
기타정보 번역서 | 352쪽
예상출고일 1~2일 이내 (근무일기준)
배송비 무료배송
   
일반
종합지수 0p
월간지수 40p 2 위
주간지수 100p 1 위
   
 

실전 알고리즘 공부법!
민간전승되던 고급 기법에서 최신 트렌드까지

『알고리즘 트레이닝: 프로그래밍 대회 입문 가이드』는 오늘날의 경진 프로그래밍에 관해 종합적으로 설명하고 있는 책이다. 이 책의 저자는 경진 프로그래밍이 가장 훌륭한 알고리즘 공부법이라고 주장하고 있다. 프로그래밍 대회에서는 실제로 작동하는 알고리즘을 설계하고 구현하도록 장려하고, 그 과정에서 프로그래밍 및 디버깅 실력이 향상되도록 자극한다. 이런 대회 환경 때문에 문제를 푸는 데 필요한 사고 능력이 집중적으로 강화될 수 있는 것이다.

이 책은 따라 해보며 설계하고 구현하도록 구성되어 있어서, 알고리즘을 배우고 프로그래밍 대회를 연습하고 싶은 학생들에게 훌륭한 참고서가 될 것이다. 몇몇 알고리즘 설계 기법은 온라인 게시판이나 블로그 글에만 간단히 소개되는 등 제대로 정리된 자료가 부족하여 상위권 경진 프로그래머들 사이에서만 주로 공유되는데, 이 책은 그런 ‘민간전승’ 기법들을 다루고 있는 점도 눈에 띈다. 활용하기 좋은 프로그래밍 기법, 최신 트렌드 및 대회에서 유용한 트릭까지, 다루는 주제의 폭이 넓고 그 난이도도 다양해서 초보자와 경험자 모두에게 적합한 책이다.


* 추천의 글
문제 해결 능력을 길러 줄 훌륭한 책
문제 해결 능력은 프로그래머에게 필요한 핵심 능력 중 하나입니다. 이 능력은 알고리즘 문제를 해결하면서 키울 수 있습니다. 문제를 해결하려면 사용할 수 있는 방법을 먼저 공부해야 합니다. 이 책은 문제를 해결할 수 있는 거의 모든 알고리즘과 자료 구조에 대한 설명을 담고 있습니다. 책의 후반부에는 책으로는 만나보기 어려웠던 주제를 소개하고 있어서 좀 더 어려운 문제를 해결하고 싶은 분들께 큰 도움이 될 것입니다. 효율적인 방법을 생각하기 위한 능력을 기르는 데 도움이 될 만한 훌륭한 책입니다.
- 최백준, 백준 온라인 저지(https://www.acmicpc.net) 운영자

경진 프로그래밍 실력을 끌어올리기 위한 필독서
이 책은 경진 프로그래밍에서 다루고 있는 분야들을 폭넓게 훑어보기 좋습니다. 전공 서적만큼 아주 상세한 내용을 담고 있지는 않지만, 대신 최근의 경진 프로그래밍 트렌드에 걸맞은 여러 분야를 아우르고 있습니다. 거기에다 이 책의 저자가 직접 만든 채점 사이트에서 새로운 문제들도 풀어볼 수 있습니다. 경진 프로그래밍 실력을 한층 더 늘리고 싶다면 필수로 읽어봐야 할 좋은 책입니다. 물론 기업의 알고리즘 테스트나 코딩 테스트를 준비하는 분들에게도 추천할 만합니다.
- 박성원, 구글코리아 소프트웨어 엔지니어
1장 들어가며
1.1 경진 프로그래밍이란 무엇인가?
1.1.1 프로그래밍 대회
1.1.2 연습에 대한 조언
1.2 이 책에 대하여
1.3 CSES 문제 셋(set)
1.4 그 밖의 참고자료

2장 프로그래밍 기법
2.1 언어적 특성
2.1.1 입력과 출력
2.1.2 수를 처리하는 방법
2.1.3 코드 짧게 만들기
2.2 재귀적 알고리즘
2.2.1 부분집합 생성하기
2.2.2 순열 생성하기
2.2.3 퇴각 검색
2.3 비트 연산
2.3.1 비트 연산
2.3.2 집합 표현하기

3장 효율성
3.1 시간 복잡도
3.1.1 계산 규칙
3.1.2 자주 접할 수 있는 시간 복잡도
3.1.3 효율성 추정하기
3.1.4 엄밀한 정의
3.2 예제 문제
3.2.1 최대 부분 배열 합
3.2.2 두 퀸 문제

4장 정렬과 탐색
4.1 정렬 알고리즘
4.1.1 버블 정렬
4.1.2 병합 정렬
4.1.3 정렬의 하한
4.1.4 계수 정렬
4.1.5 실제 상황에서의 정렬
4.2 정렬을 이용한 문제 풀이
4.2.1 스윕 라인 알고리즘
4.2.2 이벤트 스케줄링
4.2.3 작업과 데드라인
4.3 이진 탐색
4.3.1 이진 탐색 구현하기
4.3.2 최적해 구하기

5장 자료 구조
5.1 동적 배열
5.1.1 벡터
5.1.2 반복자와 범위
5.1.3 다른 자료 구조
5.2 집합 자료 구조
5.2.1 셋과 멀티셋
5.2.2 맵
5.2.3 우선순위 큐
5.2.4 정책 기반 집합
5.3 실험
5.3.1 집합과 정렬
5.3.3 우선순위 큐와 멀티셋

6장 동적 계획법
6.1 기본 개념
6.1.1 탐욕법이 실패하는 경우
6.1.2 최적해 구하기
6.1.3 해의 개수 세기
6.2 다른 예제
6.2.1 최장 증가 부분 수열
6.2.2 격자상의 경로
6.2.3 짐 싸기 문제
6.2.4 순열을 부분집합으로 바꾸기
6.2.5 타일 세기

7장 그래프 알고리즘
7.1 그래프 기본
7.1.1 그래프 용어
7.1.2 그래프의 표현
7.2 그래프 순회
7.2.1 깊이 우선 탐색
7.2.2 너비 우선 탐색
7.2.3 응용
7.3 최단 경로
7.3.1 벨만-포드 알고리즘
7.3.2 다익스트라 알고리즘
7.3.3 플로이드-워셜 알고리즘
7.4 사이클 없는 방향 그래프
7.4.1 위상 정렬
7.4.2 동적 계획법
7.5 후속 노드 그래프
7.5.1 후속 노드 구하기
7.5.2 사이클 찾기
7.6 최소 신장 트리
7.6.1 크루스칼 알고리즘
7.6.2 유니온-파인드 자료 구조
7.6.3 프림 알고리즘

8장 알고리즘 설계 기법
8.1 비트 병렬 알고리즘
8.1.1 해밍 거리
8.1.2 부분 격자 세기
8.1.3 그래프의 도달 가능성
8.2 분할 상환 분석
8.2.1 두 포인터 기법
8.2.2 보다 작으면서 가장 가까운 원소
8.2.3 슬라이딩 윈도의 최솟값
8.3 최솟값 구하기
8.3.1 삼진 탐색
8.3.2 볼록 함수
8.3.3 합 최소화

9장 구간 질의
9.1 정적 배열에 대한 질의
9.1.1 합 질의
9.1.1 최소 질의
9.2 트리형 자료 구조
9.2.1 이진 인덱스 트리
9.2.2 구간 트리
9.2.3 고급 기법

10장 트리 알고리즘
10.1 기본 기술
10.1.1 트리 순회
10.1.2 지름 계산하기
10.1.3 모든 최장 경로
10.2 트리 질의
10.2.1 조상 찾기
10.2.2 서브트리와 경로
10.2.3 최소 공통 조상
10.2.4 자료 구조 병합하기
10.3 고급 기술
10.3.1 센트로이드 분해
10.3.2 헤비-라이트 분해

11장 수학
11.1 정수론
11.1.1 소수와 인수
11.1.2 에라토스테네스의 체
11.1.3 유클리드 알고리즘
11.1.4 거듭제곱에 대한 나머지 연산
11.1.5 오일러 정리
11.1.6 방정식 풀기
11.2 조합론
11.2.1 이항 계수
11.2.2 카탈란 수
11.2.3 포함-배제
11.2.4 번사이드 보조정리
11.2.5 케일리 공식
11.3 행렬
11.3.1 행렬 연산
11.3.2 선형 점화식
11.3.3 그래프와 행렬
11.3.4 가우스 소거법
11.4 확률
11.4.1 사건 다루기
11.4.2 확률 변수
11.4.3 마르코프 체인
11.4.4 무작위 알고리즘
11.5 게임 이론
11.5.2 님 게임
11.5.3 스프라그-그룬디 정리

12장 고급 그래프 알고리즘
12.1 그래프의 강결합성
12.1.1 코사라주 알고리즘
12.1.2 2SAT 문제
12.2 완전 경로
12.2.1 오일러 경로
12.2.2 해밀턴 경로
12.2.3 응용
12.3 최대 유량
12.3.1 포드-풀커슨 알고리즘
12.3.2 서로소 경로
12.3.3 최대 매칭
12.3.4 경로 커버
12.4 깊이 우선 탐색 트리
12.4.1 이중연결성
12.4.2 오일러 서브그래프

13장 기하
13.1 기하 기법
13.1.1 복소수
13.1.2 점과 선
13.1.3 다각형의 넓이
13.1.4 거리 함수
13.2 스윕 라인 알고리즘
13.2.1 교차점의 개수 세기
13.2.2 가장 가까운 쌍 문제
13.2.3 볼록 껍질 문제

14장 문자열 알고리즘
14.1 기본 주제
14.1.1 트라이 자료 구조
14.1.2 동적 계획법
14.2 문자열 해싱
14.2.1 다항식 해싱
14.2.2 응용
14.2.3 충돌과 상수
14.3 Z 알고리즘
14.3.1 Z 배열 구하기
14.3.2 응용
14.4 접미사 배열
14.4.1 접두사를 두 배씩 늘려가는 방법
14.4.2 패턴 찾기
14.4.3 LCP 배열

15장 고난도 주제
15.1 제곱근 기법
15.1.1 자료 구조
15.1.2 서브알고리즘
15.1.3 정수 분할
15.1.4 모 알고리즘
15.2 구간 트리 다시 살펴보기
15.2.1 갱신 뒤로 미루기
15.2.2 동적 트리
15.2.3 노드에 자료 구조 저장하기
15.3 트립
15.3.1 분할과 병합
15.3.2 구현
15.3.3 고급 기법
15.4 동적 계획법 최적화
15.4.1 볼록 껍질 트릭
15.4.2 분할 정복 최적화 기법
15.4.3 커누스의 최적화 기법
15.5 그 밖의 기법
15.5.1 중간 만남 기법
15.5.2 부분집합의 개수 세기
15.5.3 병렬 이진 탐색
15.5.4 동적 연결성 문제

부록 A 수학적 배경 이론
지은이: 안티 라크소넨 Antti Laaksonen
핀란드의 헬싱키 대학교와 알토 대학교에서 교원 겸 연구자로 근무했다. 2008년부터 핀란드 정보 올림피아드 주최자 중 한 명으로 활동했으며, 2016년에는 발틱 정보 올림피아드 학술위원장으로 활동했다. 2009년부터 2016년까지의 국제 정보 올림피아드 등, 여러 국제 프로그래밍 대회에 참가한 핀란드 팀을 지도하고 이끌었으며, 이를 통해 프로그래밍과 알고리즘 지도 경험을 쌓았다.


>> 역자 소개
옮긴이: 조승현
서울대학교 컴퓨터공학부에서 학사와 석사 학위를 취득했다. 학생 때부터 꾸준히 경진 프로그래밍 경험을 쌓았고 현재도 대회 참가 및 관련 커뮤니티 활동을 하고 있다. 졸업 후 카카오의 카카오스토리팀에서 일했고 현재 구글코리아의 검색팀에서 소프트웨어 엔지니어로 일하고 있다.

옮긴이: 김진현(lewha0)
서울대학교 컴퓨터공학부에서 학사와 박사 학위를 취득했다. 중고등학교 때 정보 올림피아드를 통해 경진 프로그래밍에 입문했고, 학부 때는 학내에 ACM ICPC 참가를 위한 동아리를 만들며 초대 회장을 맡기도 했다. 대학원에서는 최적화 문제를 풀기 위한 알고리즘을 연구하며 틈틈이 Topcoder Open, Google Code Jam 등의 대회에 참가했다. 2016년 졸업 후, 현재는 현업에서 인공지능과 관련된 연구개발을 수행하고 있다.

등록된 서평이 없습니다.
Solidworks Basic(솔리드웍스 베이직)(2017)...
원동현
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
오픈소스 파워툴...
한동준, 김도균
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
커니의 코틀린...
김태호
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
 
전체평균(0)
회원평점   회원서평수 0
Insight (인사이트) 출판사의 신간
MySQL 5.7 완벽 분석: DB 관리자가 알아야 할 주요 개념과 175가지 신기능
오쿠노 미키야 저
23,400원
(10%↓+5%)
 
진실을 드러내는 데이터 시각화의 과학과 예술
알베르토 카이로 저
25,200원
(10%↓+5%)
 
밑바닥부터 만드는 컴퓨팅 시스템
노암 니산, 시몬 쇼켄 저
23,400원
(10%↓+5%)
 
파이썬으로 만드는 OpenCV 프로젝트
이세우 저
32,400원
(10%↓+5%)
 
스프링 부트 시작하기
김인우 저
19,800원
(10%↓+5%)
 
이메일주소수집거부