U E D R , A S I H C RSS

알고하자/표준교육과정 (rev. 1.1)

알고하자/표준교육과정

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

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



트리 응용 1

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

그래프 알고리즘

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

다이나믹 프로그래밍 2



심화 알고리즘

트리 응용 2

  • 세그먼트 트리
  • 바이너리 인덱스 트리
  • Trie

기하 알고리즘

  • 플레인 스위핑
  • Convex Hull(Graham Scan)

네트워크 플로우

  • 이론(최대 유량, 이분 매칭, 민 컷)
  • 최소 비용 유량(MCMF)

SCC

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

2-SAT

  • 이분 그래프
  • Disjoint-set
  • 2-SAT

기타

  • 위에 적힌 것 외에 필요하다고 생각되는 알고리즘을 아래에 적어봅시다.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:22
Processing time 0.0526 sec