장바구니 담기 close

장바구니에 상품을 담았습니다.

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

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

  • 안티라크소넨
  • |
  • 인사이트
  • |
  • 2019-05-09 출간
  • |
  • 352페이지
  • |
  • 188 X 240 mm
  • |
  • ISBN 9788966262441
★★★★★ 평점(10/10) | 리뷰(1)
판매가

25,000원

즉시할인가

22,500

카드할인

0원(즉시할인 0%)

적립금

250원 적립(1%적립)

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

추가혜택

네이버페이 무조건 1%적립+ 추가 1%적립

수량
+ -
총주문금액
22,500

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

실전 알고리즘 공부법!  

민간전승되던 고급 기법에서 최신 트렌드까지

 

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

 

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

목차


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 수학적 배경 이론

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.