닫기
전체카테고리
  • -->
    국내도서
    국내도서
  • -->
    베스트셀러
    베스트셀러
  • -->
    새로나온도서
    새로나온도서
  • -->
    추천도서
    추천도서
  • -->
    할인/재정가 도서
    할인/재정가 도서
  • -->
    GIFT
    GIFT
알고리듬으로 생각하기 (마스크제공) 이미지 확대 보기
  • 알고리듬으로 생각하기 (마스크제공)

알고리듬으로 생각하기 (마스크제공)

공유
정가
40,000
판매가
36,000
배송비
무료 지역별추가배송비
택배
방문 수령지 : 서울특별시 영등포구 양산로 57-5 (양평동 이노플렉스) B101
자체상품코드
9791161758268
제조사
에이콘출판
출시일
2024-02-29
구매혜택
할인 : 적립 적립금 :
알고리듬으로 생각하기 (마스크제공)
0
총 상품금액
총 할인금액
총 합계금액

상품상세정보

21615d286a4b23fc9ded08f4bbbe3a95_192355.jpg
 


책소개

알고리듬과 데이터 구조를 활용해 컴퓨터 문제를 해결하는 데 초점을 맞춘 책이다. 세계적인 프로그래밍 대회에 출제된 문제들 중 도전적이고 배울 점이 많은 문제를 엄선해 저자만의 알고리듬 설계 방법을 가르친다. 문제 분류, 데이터 구조 선택, 알고리듬 식별뿐만 아니라 해시 테이블, 힙, 트리와 같은 구조의 선택이 실행 시간에 미치는 영향과 최적화 방법도 다룬다. 또한 재귀, 동적 프로그래밍, 이진 탐색과 같은 전략을 통해 도전적인 문제를 해결하는 방법을 소개하며 코드 라인별 분석 및 다양한 알고리듬과 데이터 구조 사용법을 설명한다. 각 문제의 해법은 실제로 프로그래밍 판정 시스템(온라인 저지) 웹 사이트에서 직접 결과를 확인할 수 있다.

목차

1장. 해시 테이블

__문제 1: 고유한 눈송이
____문제 설명
____문제 단순화
____핵심 부분 풀이
____해법 1: 쌍 비교
____해법 2: 작업량 줄이기
__해시 테이블
____해시 테이블 설계
____해시 테이블 사용 이유
__문제 2: 복합어
____문제 설명
____복합어 식별
____해법
__문제 3: 철자 검사
____문제 설명
____해시 테이블 방식의 적합성 판단
____임시 해법
__요약
__참고 사항

2장. 트리와 재귀

__문제 1: 할로윈 하울
____문제 설명
____이진 트리
____예제 문제 해결
____이진 트리 표현
____모든 사탕 모으기
____완전히 다른 해법
____최소 경로 이동
____입력 받기
__재귀 사용 이유
__문제 2: 후손 거리
____문제 설명
____입력 받기
____단일 노드의 후손의 수
____모든 노드의 후손의 수
____노드 정렬
____정보 출력
____main 함수
__요약
__참고 사항

3장. 메모이제이션과 동적 프로그래밍

__문제 1: 버거 마니아
____문제 설명
____계획 세우기
____최적해의 특성
____해법 1: 재귀
____해법 2: 메모이제이션
____해법 3: 동적 프로그래밍
__메모이제이션과 동적 프로그래밍
____1단계: 최적해 구조
____2단계: 재귀 해법
____3단계: 메모이제이션
____4단계: 동적 프로그래밍
__문제 2: 구두쇠
____문제 설명
____최적해의 특성
____해법 1: 재귀
____main 함수
____해법 2: 메모이제이션
__문제 3: 하키 라이벌
____문제 설명
____라이벌 정보
____최적해의 특성
____해법 1: 재귀
____해법 2: 메모이제이션
____해법 3: 동적 프로그래밍
____공간 최적화
__문제 4: 통과 방법
____문제 설명
____해법: 메모이제이션
__요약
__참고 사항

4장. 그래프 및 너비 우선 탐색

__문제 1: 나이트 추격
____문제 설명
____최적 이동
____최상의 결과
____변덕스런 해법
____시간 최적화
__그래프와 BFS
____그래프란?
____그래프와 트리
____그래프와 BFS
__문제 2: 로프 오르기
____문제 설명
____해법 1: 동작 찾기
____해법 2: 리모델링
__문제 3: 책 번역
____문제 설명
____그래프 작성
____BFS 구현
____총 비용
__요약
__참고 사항

5장. 가중치 그래프의 최단 경로

__문제 1: 생쥐 미로
____문제 설명
____BFS 이동
____가중치 그래프의 최단 경로
____그래프 작성
____다익스트라 알고리즘 구현
____두 가지 최적화
__다익스트라 알고리즘
____다익스트라 알고리즘의 실행 시간
____음수-가중치 에지
__문제 2: 할머니 집 찾기
____문제 설명
____인접 행렬
____그래프 작성
____이상한 경로
____과제 1: 최단 경로
____과제 2: 최단 경로 수
__요약
__참고 사항

6장. 이진 탐색

__문제 1: 개미 먹이기
____문제 설명
____새로운 형태의 트리 문제
____입력 받기
____타당성 시험
____해법 찾기
__이진 탐색
____이진 탐색 실행 시간
____타당성 결정
____정렬된 배열 탐색
__문제2: 강 건너기
____문제 설명
____탐욕 알고리즘
____타당성 시험
____해법 찾기
____입력 받기
__문제 3: 삶의 질
____문제 설명
____전체 사각형 정렬
____이진 탐색
____타당성 시험
____좀 더 빠른 타당성 시험
__문제 4: 동굴 문
____문제 설명
____하위 작업 풀이
____선형 탐색 사용
____이진 탐색 사용
__요약
__참고 사항

7장. 힙과 세그먼트 트리

__문제 1: 수퍼마켓 판촉 행사
____문제 설명
____해법 1: 배열의 최댓값과 최솟값
____최대-힙
____최소 힙
____해법 2: 힙
__힙
____두 가지 응용 사례
____데이터 구조 선택
__문제 2: 트립 생성
____문제 설명
____재귀를 이용한 트립 출력
____레이블 정렬
____해법 1: 재귀
____구간 최대 쿼리
____세그먼트 트리
____해법 2: 세그먼트 트리
__세그먼트 트리
__문제 3: 두 합
____문제 설명
____세그먼트 트리 채우기
____세그먼트 트리 쿼리
____세그먼트 트리 업데이트
____main 함수
__요약
__참고 사항

8장. 유니온 파인드

__문제 1: 소셜 네트워크
____문제 설명
____그래프 모델링
____해법1: BFS
____유니온 파인드
____해법 2: 유니온 파인드
____최적화 1: 크기별 유니온
____최적화 2: 경로 압축
__유니온 파인드
____관계: 세 가지 요구사항
____유니온 파인드 선택
____최적화
__문제 2: 친구와 적
____문제 설명
____확장: 적
____main 함수
____파인드와 유니온
____SetFriends와 SetEnemies
____AreFriends와 AreEnemies
__문제 3: 서랍 정리
____문제 설명
____동등한 서랍
____main 함수
____파인드와 유니온
__요약
__참고 사항

후기

부록 A. 알고리즘 실행 시간
__제한 시간의 한계
__빅오 표기법
____선형 시간
____상수 시간
____추가 예제
____2차 시간
____이 책의 빅오 표기법

부록 B. 추가 자료
__고유한 눈송이: 암시적 연결 리스트
__버거 마니아: 해법 재구성
__나이트 추격: 이동 인코딩
__다익스트라 알고리즘: 힙 사용
____생쥐 미로: 힙을 사용한 추적
____생쥐 미로: 힙을 사용한 구현
__경로 압축을 압축하기
____1단계: 삼항 연산자 제거
____2단계: 할당 연산자 정리
____3단계: 재귀 이해

부록 C 문제 출처

저자소개


출판사리뷰

이 책에서 다루는 내용

- 체스 게임을 하는 최적의 방법과 책을 번역하는 최적의 방법을 찾기 위한 너비 우선 검색 알고리듬
- 미로를 빠져나갈 수 있는 생쥐의 수 또는 두 위치 사이의 가장 빠른 경로의 수를 결정하는 다익스트라 알고리듬
- 소셜 네트워크의 연결 여부 또는 친구 여부를 결정하기 위한 유니온-파인드 데이터 구조
- 매장 판촉에서 제공되는 금액을 결정하기 위한 힙 데이터 구조
- 눈송이가 고유한지 여부를 확인하거나 사전에서 복합어를 식별하기 위한 해시 테이블 데이터 구조

이 책의 대상 독자

난이도 높은 문제를 해결하는 학습법을 배우려는 모든 프로그래머를 위한 책이다. 다양한 데이터 구조와 알고리듬, 문제 풀이에 도움이 되는 유형 및 구현 방법을 배울 수 있다. 이 책의 코드는 전부 C언어로 작성됐다. 단, C언어의 기초는 다루지는 않는다. 독자가 C/C++에 익숙하다면 바로 시작하는 데 어려움이 없을 것이다. 그 외에 자바나 파이썬 등 다른 언어로 프로그래밍한 경험이 있다면 대부분의 내용은 읽으면서 대략 이해할 수 있을 것이다. 그래도 1장을 시작하기 전에 C언어의 개요를 복습한다면 좀 더 도움이 될 것이다. 특히, 포인터와 동적 메모리 할당에 대해서는 기존의 프로그래밍 경험에 관계없이 숙지해 둘 필요가 있다. 독자에게 추천하는 C언어 책은 K. N. 킹의 『C Programming: A Modern Access, 2nd Edition』(W. W. Norton & Company, 2008)이다. C언어에 익숙한 사람에게도 참고용으로서 유용한 책이다.

지은이의 말

기획 단계에서 최신의 멋진 알고리듬을 설명하고 기존의 기법들과 비교하는 구성도 고민했었다. 설명을 위주로 하고 실제 알고리듬 문제를 접하지 않으면 금방 기억에서 잊힌다는 단점을 떠올릴 수밖에 없었다. 이 책은 알고리듬 기법을 먼저 설명하지 않고, 오히려 문제를 먼저 제시하는 방식을 사용한다. 게다가 제시되는 문제도 상당히 어려워서 기존의 방법으로는 쉽게 풀 수 없는 것들이다. 즉, 독자들이 어려운 문제를 접하면서 이미 알고 있는 경험과 문제 해결에 필요한 지식을 연결시키는 방식으로 기술을 습득할 수 있다. 아마도 기존의 교과서에서 봤던 문제는 찾을 수 없을 것이다. 행렬을 곱하거나 피보나치 수열을 계산하는 최적 방법에 대한 내용도 없다. 또한, 하노이 탑 문제를 풀 일도 없을 거라고 장담한다. 다른 많은 훌륭한 교과서들이 이런 문제를 다루고 있는 것이 현실이지만, 과연 그런 종류의 문제에 흥미를 느끼는지는 의문이다.

오히려 독자들이 접해 보지 못한 새로운 문제를 활용하려고 한다. 해마다 수천 명의 사람들이 프로그래밍 경진대회에 참가한다. 대회를 준비하는 주최측은 참가자들이 기존 답안을 다시 쓰거나 구글 검색만 이용해서 풀 수 없도록 새로운 문제를 준비한다. 새로운 문제는 기존의 문제를 새로운 상황에 맞도록 변형하며, 참가자들이 새로운 해법을 찾아내도록 도전하고 흥미를 유발한다. 이런 문제를 푸는 데 필요한 프로그래밍과 컴퓨터 지식은 끝이 없다. 제대로 된 문제를 고를 수만 있다면 실컷 배울 수 있다. 가장 기초적인 정의를 떠올려보자. 자료 구조, 즉 데이터 구조란 데이터를 구조화해 연산을 빠르게 하는 방법을 말한다. 알고리듬은 문제 해결 방법을 순서대로 나열한 것이다. 가끔은 정교한 데이터 구조 없이도 빠른 알고리듬을 만들어 낼 수 있다. 그러나 올바른 데이터 구조를 사용한다면 알고리듬의 속도를 획기적으로 향상시킬 수 있다. 이 책을 열심히 공부하면 실력 있는 프로그래머가 될 수는 있지만, 그것이 필자의 목표는 아니다. 프로그래밍 경진대회의 문제 풀이를 통해 데이터 구조와 알고리듬을 재미있게 가르치고 배우는 것을 마음에 두고 썼다. 이 책에서 배울 만한 것이나, 재미난 것을 찾았다면 소감을 이메일로 보내주길 기대한다.

상품필수 정보

도서명 알고리듬으로 생각하기 (마스크제공)
저자/출판사 다니엘 진가로 , 이정표 ,에이콘출판
크기/전자책용량 188*235*24mm
쪽수 520쪽
제품 구성 상품상세참조
출간일 2024-02-29
목차 또는 책소개 상품상세참조

관련 상품

배송안내

- 배송비 : 기본 배송료는 2,000원입니다. (도서,산간,오지 일부 지역은 배송비가 추가될 수 있습니다)  10,000원 이상 구매 시 무료배송입니다.

- 본 상품의 평균 배송일은 2일입니다.(입금 확인 후) 설치 상품의 경우 다소 늦어질 수 있습니다.[배송 예정일은 주문 시점(주문 순서)에 따른 유동성이 발생하므로 평균 배송일과는 차이가 발생할 수 있습니다.]

- 본 상품의 배송 가능일은 7일입니다. 배송 가능일이란 본 상품을 주문하신 고객님들께 상품 배송이 가능한 기간을 의미합니다. (단, 연휴 및 공휴일은 기간 계산 시 제외하며 현금 주문일 경우 입금일 기준입니다.)

교환 및 반품안내

- 상품 택(tag)제거 또는 개봉으로 상품 가치 훼손 시에는 상품수령후 7일 이내라도 교환 및 반품이 불가능합니다.

- 저단가 상품, 일부 특가 상품은 고객 변심에 의한 교환, 반품은 고객께서 배송비를 부담하셔야 합니다(제품의 하자,배송오류는 제외)

- 일부 상품은 신모델 출시, 부품가격 변동 등 제조사 사정으로 가격이 변동될 수 있습니다.

- 신발의 경우, 실외에서 착화하였거나 사용흔적이 있는 경우에는 교환/반품 기간내라도 교환 및 반품이 불가능 합니다.

- 수제화 중 개별 주문제작상품(굽높이,발볼,사이즈 변경)의 경우에는 제작완료, 인수 후에는 교환/반품기간내라도 교환 및 반품이 불가능 합니다. 

- 수입,명품 제품의 경우, 제품 및 본 상품의 박스 훼손, 분실 등으로 인한 상품 가치 훼손 시 교환 및 반품이 불가능 하오니, 양해 바랍니다.

- 일부 특가 상품의 경우, 인수 후에는 제품 하자나 오배송의 경우를 제외한 고객님의 단순변심에 의한 교환, 반품이 불가능할 수 있사오니, 각 상품의 상품상세정보를 꼭 참조하십시오. 

환불안내

- 상품 청약철회 가능기간은 상품 수령일로 부터 7일 이내 입니다.

AS안내

- 소비자분쟁해결 기준(공정거래위원회 고시)에 따라 피해를 보상받을 수 있습니다.

- A/S는 판매자에게 문의하시기 바랍니다.

이미지 확대보기알고리듬으로 생각하기 (마스크제공)

알고리듬으로 생각하기 (마스크제공)
  • 알고리듬으로 생각하기 (마스크제공)
닫기

비밀번호 인증

글 작성시 설정한 비밀번호를 입력해 주세요.

닫기

장바구니 담기

상품이 장바구니에 담겼습니다.
바로 확인하시겠습니까?

찜 리스트 담기

상품이 찜 리스트에 담겼습니다.
바로 확인하시겠습니까?

  • 장바구니
  • 최근본상품
  • 위로
  • 아래로

최근 본 상품

  • 알고리듬으로 생각하기 (마스크제공)
    알고리듬으로 생각하기 (마스크제공)
    40,000 36,000
0/2
마이홈
고객센터

02-835-6872평일 오전 10:00 ~ 오후 06:00
점심 오후 12:30 ~ 오후 01:30
휴무 토/일/공휴일