나에게 필요한 지식과 기술을 검색해 보세요.

알고리즘 문제 풀이 전략

프로그래머의 취업, 이직을 결정하는

지은이

조중필, 한현상, 이주호

출간일

2016.09.06

레벨

초급

평점

3.8(6명)

정가

23,800

총 결제 금액

23,800

전자책 사용 안내

전자책은 웹뷰어와 한빛+ 앱에서 열람할 수 있으며 PDF 다운로드는 지원되지 않습니다.

쪽수

724P

ISBN

9788968489570

브랜드

한빛미디어
알고리즘 문제 해결 능력은 선택이 아닌 필수다!
소프트웨어 역량 테스트를 준비하는 프로그래머의 필독서!
초급 프로그래머가 고급 프로그래머로 성장하는 과정에서 겪는 가장 큰 어려움은 알고리즘 문제를 이해하고 해결하는 능력이다. 이런 이유로 외국의 많은 IT 기업은 프로그래머 채용 시 코딩 테스트 중심의 면접 과정을 진행해 알고리즘 이해도를 확인하고 있다. 최근 국내 기업에서도 프로그래머의 채용 과정 중 하나로 4~5단계 레벨로 구분하는 알고리즘 테스트를 꼭 포함시키고 있다.
이 책은 이러한 추세에 맞춰 다양한 알고리즘 문제를 해결하는 데 꼭 필요한 40여 가지의 알고리즘 문제 풀이 전략을 소개한다. 프로그래머로서의 실력 향상은 물론이고 취업, 이직, 승진, 알고리즘 대회 입상 등 프로그래머의 이력 관리에 관심이 있다면 꼭 이 책을 읽고 고급 프로그래머가 될 수 있기를 희망한다.

 

detail.png

 

저자

목차

 Part I. 꼭 알아야 하는 필수 알고리즘

 

CHAPTER 1 알고리즘의 역할

    01 알고리즘의 정의

        알고리즘이란?

    02 알고리즘은 정말 필요한가?

        알고리즘이 없어도 프로그램을 실행할 수 있다?

        알고리즘의 세 가지 요소

    03 수학적 배경

        알고리즘의 수학적 표기 방법

        빅오 표기법의 시그마 사용 방법

    04 분석의 대상

        무엇을 분석할 것인가?

        반복문은 최대 반복 횟수로 계산한다

        중첩된 반목문은 중첩문 각각의 최대 반복 횟수를 곱해서 계산한다

        반복문이 떨어져서 2개 이상 있는 경우는 그중 가장 큰 값으로 계산한다

        if-else문은 알고리즘 성능에 영향을 미치지 않는다

        재귀 호출은 풀어서 계산한다

    05 알고리즘의 분석과 최적화

        프로그램의 수학적 분석 예

        프로그램의 최적화 예

    06 정리

 

CHAPTER 2 알고리즘을 배우기 전에 알아야 할 다섯 가지

    01 메모리와 주소의 관계

    02 자료형과 배열

        메모리와 자료형

        메모리와 배열

    03 배열의 응용

        함수와 일차원 배열의 사용

        다차원 배열

    04 포인터

        포인터는 왜 사용할까?

        포인터의 사용 형식

    05 배열과 포인터의 사용

        배열과 포인터의 기본적인 조합 방법

        배열과 포인터의 차이점

        배열을 사용하는 포인터를 함수의 매개변수로 사용

    06 포인터 배열과 포인터 연산

        포인터 배열이란?

        포인터 연산의 이해

    07 포인터의 활용: Call by reference

    08 정리

 

CHAPTER 3 기본적인 자료구조

    01 링크드 리스트란?

    02 링크드 리스트의 삽입과 삭제

        링크드 리스트의 특징

        링크드 리스트의 삽입 알고리즘

        링크드 리스트의 삭제 알고리즘

    03 이중 링크드 리스트

        이중 링크드 리스트

        이중 링크드 리스트의 삽입과 삭제 알고리즘

    04 스택의 개념과 알고리즘

        스택의 개념

        스택의 구현

        푸시와 팝

    05 큐의 개념과 알고리즘

        큐의 개념

        배열을 사용한 큐의 구현

        링크드 리스트를 사용한 큐의 구현

    06 정리

 

CHAPTER 4 트리

    01 트리의 개념과 주요 용어

        트리의 개념

        트리 관련 주요 용어

        이진 트리

        트리의 순회 알고리즘

    02 전위 순회 알고리즘

    03 중위 순회 알고리즘

        재귀 호출을 사용한 중위 순회

        스택을 사용한 중위 순회

    04 후위 순회 알고리즘

        재귀 호출을 사용한 후위 순회

        스택을 사용한 후위 순회

        스택을 사용하는 순회 알고리즘의 비교

    05 단계 순회 알고리즘

    06 정리

 

CHAPTER 5 트리의 응용

    01 AVL 트리

        이진 트리의 문제점

        AVL 트리

        AVL 트리의 구성

    02 2-3 트리

        AVL 트리의 문제점을 해결하는 2-3 트리

        2-3 트리의 구현

        2-3 트리의 변형

    03 정리

 

CHAPTER 6 기본 정렬 알고리즘

    01 다양한 정렬 알고리즘

    02 선택 정렬 알고리즘

        선택 정렬 알고리즘의 개념

        선택 정렬 알고리즘의 분석

    03 삽입 정렬 알고리즘

        삽입 정렬 알고리즘의 개념

        삽입 정렬 알고리즘의 분석

    04 버블 정렬 알고리즘

        버블 정렬 알고리즘의 개념

        버블 정렬 알고리즘의 분석

    05 셸 정렬 알고리즘

        셸 정렬 알고리즘의 개념

        셸 정렬 알고리즘의 분석

06 정리

 

CHAPTER 7 향상된 정렬 알고리즘

    01 퀵 정렬 알고리즘

        퀵 정렬 알고리즘의 개념

        퀵 정렬 알고리즘의 분석

    02 기수 정렬 알고리즘

        기수 정렬 알고리즘의 개념

        기수 정렬 알고리즘의 분석

    03 병합 정렬 알고리즘

        병합 정렬 알고리즘의 개념

        병합 정렬 알고리즘의 분석

    04 힙 정렬 알고리즘

        힙 정렬 알고리즘의 개념

        힙 정렬 알고리즘의 분석

    05 정리

 

CHAPTER 8 이진 검색 알고리즘

    01 이진 검색 알고리즘

        이진 검색 알고리즘의 개념

    02 이진 검색 트리 알고리즘

        이진 검색 트리 알고리즘의 특성

        이진 검색 트리 알고리즘의 데이터 삽입

        이진 검색 트리 알고리즘의 데이터 삭제

    03 정리

 

CHAPTER 9 해시 알고리즘

    01 해시 알고리즘

        키-주소 검색 알고리즘

        키-매핑 검색 알고리즘

    02 해시 알고리즘의 문제점

        해시 알고리즘의 데이터 중복 문제

    03 해시 알고리즘의 문제 해결 방법

        해시 알고리즘에서 발생되는 문제들

    04 정리

 

Part II. 실전 알고리즘 문제 해결

 

CHAPTER 10 몸풀기 알고리즘 문제

    01 10진수와 16진수 변환 프로그램

    02 숫자 맞추기

        임의의 숫자를 생성하는 방법

        프로그램이 계속 실행되도록 하는 방법

    03 최대공약수 구하기

        임의의 숫자의 약수를 구하는 방법

        임의의 두 숫자에 공통으로 해당하는 약수를 구하는 방법

        임의의 두 숫자에 공통으로 해당하는 약수 중 최댓값을 선택하는 방법

    04 피보나치 수열

    05 임의의 숫자 배수의 개수와 합 구하기

    06 소수 구하기

        소수를 구하는 기능

        한 행에 값 8개씩 맞춰 출력하는 기능

    07 지그재그 숫자 출력하기 LEVEL 1 Hard

        전체 총 몇 행을 출력하는지 결정하는 for문

        출력할 행이 홀수인 경우의 for문

        출력할 행이 짝수인 경우의 for문

    08 재귀 호출로 최대공약수 구하기

        첫 번째 재귀 호출: x = 4, y = 6

        두 번째 재귀 호출: x = 6, y = 4

        세 번째 재귀 호출: x = 4, y = 2

        네 번째 재귀 호출: x = 2, y = 0

        최종 결과

    09 정리

 

CHAPTER 11 기본기를 다지는 알고리즘 문제

    01 탐욕 알고리즘

    02 세포의 자기 증식 프로젝트

    03 재난 관리 프로젝트

    04 블록 쌓기 게임

 

CHAPTER 12 수학식을 이용하는 알고리즘 I

    01 분할 정복 알고리즘의 특징

    02 하노이의 탑

    03 기약 분수 구하기

    04 동전 옮기기

    05 숫자 순환

 

CHAPTER 13 수학식을 이용하는 알고리즘 II

    01 탐욕 알고리즘의 특징

    02 앞뒤가 같은 제곱

    03 연 소수

    04 최대 연속 부분합

    05 화물차 배치

    06 대칭 행렬 구하기

 

CHAPTER 14 동적 계획법의 기본 개념

    01 동적 계획법의 특징

    02 계단 오르기 게임

    03 타일 바르기

    04 목장 울타리 만들기

    05 한빛스키장 리프트 가격

    06 포인트 스키 활강

 

CHAPTER 15 동적 계획법 응용

    01 동적 계획법의 전형적인 문제

    02 한빛 패스트푸드

    03 시장의 도시 방문기

    04 신입 사원 선발

    05 해커의 도전

    06 배낭 여행

 

CHAPTER 16 맵을 이용하는 알고리즘

    01 백 트래킹 알고리즘의 개념

    02 생화학 폭탄

    03 아파트 단지

    04 피곤한 배달부

    05 체스

    06 배수로 공사

 

CHAPTER 17 출제 빈도가 높은 알고리즘 문제

    01 세뱃돈 만들기

    02 한빛캐피탈의 스타트업 투자

    03 외양간 고치기

    04 영역의 크기

    05 식인종과 연구원

 

부록 Visual Studio 2013의 설치 및 설정 방법

    01 Visual Studio 2013의 다운로드와 설치

        Visual Studio 웹사이트

        Visual Studio 2013의 설치

        Visual Studio 2013의 실행

    02 Visual Studio 2013을 사용한 테스트 코드 빌드와 실행

새로운 프로젝트의 생성

        새로운 소스 코드의 생성

        코드 입력과 빌드 및 실행

    03 실행과 디버깅

        input.txt 파일의 저장 위치

        콘솔에서 실행 파일 입력해 실행하기

리뷰

전체 평점

3.8

오탈자

등록된 오탈자가 없어요

오탈자를 발견하셨다면 작성해주세요.

23,800

23,800