가장 쉬운 독학 알고리즘 첫걸음: C&자바편 (개념 이해 → 코딩 → 계산 과정 추적으로 익히는 단계별 알고리즘 학습법)

가장 쉬운 독학 알고리즘 첫걸음: C&자바편 (개념 이해 → 코딩 → 계산 과정 추적으로 익히는 단계별 알고리즘 학습법)

$23.66
Description
프로그래밍 사고력을 키우는 알고리즘 기초 학습을 만난다!
처음 알고리즘을 배울 때는 보통 주제별 개념을 이해하고, 예제 프로그램 코드를 작성해본 후, 응용문제를 풀면서 실력을 다집니다. 그런데 예제 프로그램 코드를 작성할 때까지는 쉽게 느껴졌던 알고리즘이 응용문제를 풀 때는 어려움으로 다가옵니다. 어떤 변수를 추가하거나 변경해야 할지, 제어문의 조건은 어떻게 바꾸거나 설정해야 할지 등이 익숙하지 않은 것입니다. 또한 어디까지는 코드를 맞게 작성했고 어디서부터 코드를 잘못 작성했는지를 알아야 적절하게 코드를 수정하는데 이를 처음부터 잘하기란 어렵습니다. 이는 알고리즘을 처음 공부하는 사람이라면 누구나 한번은 겪는 일입니다.

이 책은 방금 설명한 입문자의 어려움을 해결하도록 고안한 알고리즘 입문서입니다. 그림과 의사코드 등을 사용하는 기존 알고리즘 학습 방법에 알고리즘의 중간 실행 결과를 살펴볼 수 있는 추적 코드 작성법을 함께 살펴봅니다. 이 추적 코드는 실제 알고리즘이 동작하는 과정을 이해할 수 있게 하고, 원하는 결과가 나오지 않을 때 어느 부분에 문제가 생겼는지는 파악하는 힘을 길러줍니다. 기존의 알고리즘 학습법이 답답했다면 이 책과 함께 추적 코드를 활용하는 새로운 알고리즘 학습법을 만나보기 바랍니다.
저자

박광수(아크몬드)

박광수라는이름보다‘아크몬드’라는필명으로더잘알려진블로거입니다.2004년부터지금까지최신윈도우정보를꾸준히나누고있습니다.지금까지7회마이크로소프트MVP(Windows부문)를수상하기도했습니다.마이크로소프트365,애저(Azure)등마이크로소프트의최신기술에열광합니다.심리학에관심이많으며현재일본에서개발자로일하면서딥러닝에많은관심을두고있습니다.

지은책으로는『윈도우10마스터북』,옮긴책으로는『처음배우는딥러닝수학』,『파이썬으로배우는머신러닝의교과서』(이상한빛미디어),『캐글가이드』(동양북스)등이있습니다.

목차

1장알고리즘워밍업
1.1알고리즘이란무엇인가
1.1.1여러가지자료로살펴보는알고리즘의의미
1.1.2알고리즘을만드는비결
1.1.3컴퓨터알고리즘
1.2이책의알고리즘설명방법
1.2.1주요요소표기방법
1.2.2처리의흐름
1.2.3연산자
1.3유클리드호제법
1.3.1유클리드호제법
1.3.2알고리즘의추적
1.3.3알고리즘구현
확인문제

2장반복문과배열의기본및선형검색
2.1반복문과배열의기본
2.1.1배열요솟값의합계를구하는알고리즘
2.1.2알고리즘의추적
2.1.3프로그램을이용한알고리즘추적
2.2선형검색
2.2.1선형검색알고리즘
2.2.2알고리즘의추적
2.2.3프로그램을이용한알고리즘의추적
확인문제

3장이진탐색과시간복잡도
3.1이진검색
3.1.1이진검색알고리즘
3.1.2알고리즘의추적
3.1.3프로그램을이용한알고리즘추적
3.2알고리즘의시간복잡도
3.2.1선형검색과이진검색의시간복잡도
3.2.2검색및정렬관련주요알고리즘의시간복잡도
3.2.3데이터량과시간복잡도
확인문제

4장다중반복문과삽입,버블,선택정렬
4.1다중반복문의기초
4.1.1구구단알고리즘
4.1.2알고리즘의추적
4.1.3프로그램을이용한알고리즘의추적
4.2삽입정렬
4.2.1삽입정렬알고리즘
4.2.2알고리즘의추적
4.2.3프로그램을이용한알고리즘의추적
4.3버블정렬
4.3.1버블정렬알고리즘
4.3.2프로그램을이용한알고리즘의추적
4.4선택정렬
4.4.1선택정렬알고리즘
4.4.2프로그램을이용한알고리즘의추적
확인문제

5장연결리스트의구조와사용
5.1연결리스트의구조및추적
5.1.1일반배열과연결리스트의차이
5.1.2연결리스트의장점
5.1.3연결리스트의단점
5.2연결리스트를움직이는프로그램
5.2.1연결리스트를만들어요소를표시하기
5.2.2연결리스트에요소를삽입하기
5.2.3연결리스트에서요소를삭제하기
확인문제

6장이진탐색트리의추가와탐색
6.1이진탐색트리의자료구조와요소의추가
6.1.1이진탐색트리의자료구조
6.1.2요소를추가하면서이진탐색트리를구성하는알고리즘
6.1.3알고리즘의추적
6.2이진탐색트리의탐색
6.2.1이진탐색트리의깊이우선탐색
6.2.2이진탐색트리에서요소를탐색하는알고리즘
6.2.3재귀호출에의한이진탐색트리의탐색
확인문제

7장해시테이블탐색법
7.1해시테이블탐색법의구조
7.1.1해시테이블탐색법의알고리즘
7.1.2알고리즘의추적
7.1.3프로그램을이용한알고리즘의추적
7.2해시충돌에대처하는방법
7.2.1해시충돌에대응하기위한알고리즘
7.2.2알고리즘의추적
7.1.3프로그램을이용한알고리즘의추적
확인문제

8장재귀호출과퀵정렬
8.1재귀호출
8.1.1n의계승을구하는알고리즘
8.1.2알고리즘의추적
8.1.3프로그램을이용한알고리즘의추적
8.2퀵정렬
8.2.1퀵정렬알고리즘
8.2.2알고리즘의추적
8.2.3프로그램을이용한알고리즘의추적
확인문제

9장동적계획법과배낭문제
9.1동적계획법
9.1.1재귀호출로피보나치수구하기
9.1.2동적계획법으로피보나치수구하기
9.1.3재귀호출과동적계획법을조합하여피보나치수구하기
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전체프로그램
확인문제

부록알고리즘문제해결로실력확인하기
힙의성질을이용한데이터정렬
프로그램1
프로그램2
정답과해설
문자열오류검출
프로그램설명
정답과해설

Quiz와확인문제의정답

출판사 서평

취업이나면접멘토가과외해주는듯한느낌으로알고리즘기초체력을기른다!
프로그래밍의조건문이나반복문을처음배우면서내생각에는맞는조건인것같은데원하는출력결과가나오지않았던기억이있었습니다.이때선배가'어디어디에출력문을넣고결과확인하면서수정해봐'라는조언을들은적이있습니다.이것이디버깅의원점이자본질입니다.그당시이방법하나로도무작정조건을바꾸면서시험하는것보다좀더빨리원하는결과에맞는조건을찾았었습니다.

이책은방금설명한프로그래밍기법을‘추적코드'라고명칭하고알고리즘을공부할때활용하려는목적으로썼습니다.기존알고리즘의공식과도같은코드를익히더라도그걸응용하는방법을익힐때는그림보다도실제프로그래밍코드의조건이바뀌었을때어떤과정으로동작하는지확인하는것이좋습니다.이책이제시하는개념이해→코딩→계산과정추적으로익히는단계별알고리즘학습법과함께하면조금은딱딱하고이해하기어려운알고리즘익히기에새로운도움을줄것입니다.