'''주의! 이 과정은 알고리즘에 특화되어 있습니다. 일반적인 교육과정과는 다를 수 있습니다.'''
'''[박인서]가 개인적으로 필요하다고 생각되는 부분을 적은 것이므로 많은 피드백 바랍니다.'''

[[TableOfContents]]

= C언어 =
== 프로그램 세상보기 ==
 * OT
 * ZeroWiki 작성법
 * Hello, World! 프로그램 작성
 * 기본적인 C 프로그램 구조
 * 입출력과 주석
 * 변수와 자료형
 * ASCII 코드

== 형변환과 연산자 ==
 * 진법 표현
 * 형변환
 * 키워드와 식별자
 * 연산자의 종류
 * 연산자 우선 순위

== 조건문과 반복문 ==
 * if ~ else 와 else if
 * switch
 * 배열 기초
 * for문
 * while ê³¼ do while
 * break와 continue

== 함수와 전처리기 ==
 * 함수란?
 * 함수 정의하기
 * 변수의 범위
 * main 함수에 파라미터 전달하기
 * 재귀함수
 * 전처리기

== 포인터와 배열 ==
 * 포인터
 * 메모리 주소
 * & 연산자
 * 포인터 변수와 자료형
 * Call by value와 Call by reference
 * 배열 다시 보기
 * 배열과 포인터

== 다차원 배열과 연결 리스트 ==
 * 구조체
 * 다차원 배열
 * 행렬
 * mallocê³¼ free
 * linked list

== 문자열과 파일 입출력 ==
 * 문자열이란?
 * 문자열의 선언
 * 문자열 함수
 * KMP 알고리즘
 * 문자와 정수의 변환
 * 파일 입출력 선언
 * 파일 입출력

= 자료구조 =
== 알고리즘 기초와 수학 ==
 * 알고리즘의 정의
 * 시간 복잡도
 * 최대공약수/최소공배수(유클리드 호제법)
 * 소수 판별법
 * 팩토리얼
 * 피보나치 수

== 스택 & 큐, 정렬 & 탐색 ==
 * 스택
 * 큐
 * 덱
 * 선택/삽입/버블 정렬
 * Binary Search, 퀵/머지 정렬

== 그래프 & 트리 ==
 * 그래프(정의, 용어)
 * 인접 행렬과 인접 리스트
 * 트리(정의, 순회)
 * 트리 저장법(직접 구현, 배열 이용)
 * 힙(정의, 정렬)

= 기초 알고리즘 =
== 탐색 ==
 * Brute force
 * BFS
 * DFS
 * 백트래킹

== 분할 정복 & 그리디 알고리즘 ==
 * 이분 탐색 알고리즘
 * Parametric Search(Bisection)
 * 그리디 알고리즘

== 다이나믹 프로그래밍 1 ==
 * 다이나믹 개념
 * 부분 집합
 * 업 시퀀스
 * knapsack

== 트리 응용 1  ==
 * 트리 응용(트리의 부모, 트리의 폭)
 * 이진 검색 트리(BST)
 * 가장 가까운 공통 조상(LCA)

== 그래프 알고리즘 ==
 * 최소 스패닝 트리(위상 정렬, 프림/크루스칼)
 * 최단 경로(다익스트라, 플로이드 와샬)
 * Flood Fill 알고리즘

= 심화 알고리즘 =
== 다이나믹 프로그래밍 2 ==
 * 추가 예정

== 트리 응용 2 ==
 * 세그먼트 트리
 * 바이너리 인덱스 트리
 * Trie

== 기하 알고리즘 ==
 * 플레인 스위핑
 * Convex Hull(Graham Scan)

== 네트워크 플로우 ==
 * 이론(최대 유량, 이분 매칭, 민 컷)
 * 최소 비용 유량(MCMF)

== SCC ==
 * 연결 요소
 * SCC(단절점, 단절선)

== 2-SAT ==
 * 이분 그래프
 * Disjoint-set
 * 2-SAT

= 기타 =
 * 위에 적힌 것 외에 필요하다고 생각되는 알고리즘을 아래에 적어봅시다.
 * Dynamic Programming 2에 어떤 것을 채워야 될 지 모르겠군요.

------------------------
[알고하자]