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 파일의 저장 위치
콘솔에서 실행 파일 입력해 실행하기
자료명 | 등록일 | 다운로드 |
---|---|---|
![]() |
2016-08-17 | 다운로드 |