INTRODUCTION TO ALGORITHMS STUDY 공지

(아래 내용은 업데이트시 변경될 수 있습니다.)

안녕하세요. 개발자 새로입니다. 이번에 힘든 알고리즘 스터디를 진행하려 합니다. 시작부터 힘든 스터디라 칭하는 이유는 여러가지가 있습니다. 첫번째는 스터디 주제가 알고리즘 입니다. 두번째는 알고리즘을 제대로 공부하는 스터디 입니다. 세번째는 알고리즘을 이해하는 스터디입니다. (물론 힘듦의 기준은 개인의 역량에 따라 달라질 수 있습니다. 제 기준으로 매우 힘든 스터디…)

위와 같은 목표를 달성하기 위해 MIT ALGORITHMS COURSE에서 사용하는 INTRODUCTION TO ALGORITHMS 3rd 교재와 함께 스터디를 진행합니다. 번역판 있습니다.

INTRODUCTION TO ALGORITHMS 3rd

스터디 정보

스터디 모집대상

알고리즘에 대한 열망, 부족함을 알고 극복하려는 개발자

스터디 진행방식

스터디는 매주 한번 평일 2시간 정도 만나서 진행 되며, 장소는 제가 근무중인 마이뮤직테이스트(강남구청근처)나 불가능할 시에는 강남인근 스터디 룸에서 진행 될 예정입니다.

진행할 교재 내용과 과제를 감안한 스터디 플랜입니다.

  • 소주제(Ex. 1.1알고리즘) 1~2개 단위의 학습 범위를 일주일전에 함께 정하고 개인적으로 학습한다. (목차는 포스팅 하단 참고)
  • 소주제 마다 포함된 연습문제가 있고, 연습문제를 본인이 생각하기에 충분한 노력을 들여서 풀어온다. 문제를 풀면서 공유하고 싶은 주제를 한개 이상 구체적인 질문으로 만들어온다. (책을 보신분은 아시겠지만 연습문제가 결코 쉽지 않습니다.)
  • 각자의 과제를 공유하고, 궁금한 점을 토론한다.
  • 마지막으로 모범답안을 확인 후 토론한다.

개인적으로 생각한 스터디 플랜은 위와 같지만 더 좋은 방식이 있을시 변경될 수 있습니다.

위 교재는 크게 총 8장으로 나누어지는데 이번 스터디에서는 3장 자료구조까지 진행됩니다. 3장까지의 분량(약 400페이지)도 결코 만만치 않습니다… 물론 이번 스터디가 마무리 된후에 뒷 단원 내용도 따로 스터디를 진행할 예정입니다.

마지막으로 하나더. 이번 스터디는 어느정도의 강제성과 의무감을 위해 강력한(?) Deposit(10만원!!!) 제도가 존재합니다. Deposit은 스터디 회칙에 어긋나는 행동을 했을때 차감되며, 스터디 완료시 돌려받게됩니다. Deposit에서 차감된 금액은 스터디원의 먹거리 비용으로 처리됩니다.

스터디 지원 제출 폼

Click Apply Form

스터디 회칙

현재 스터디 회칙은 다음과 같습니다.

  • 두번째 참석까지는 deposit을 내지 않는다. 두번째 참석 후 지속 참여 여부 결정과 deposit 납입
  • 결석 만원 차감
  • 지각 오천원 차감
  • 과제 불 이행시 만원 차감
  • Deposit 탕진시 스터디 탈퇴 혹은 Deposit 충전
  • 차감된 금액은 스터디원의 먹거리 구입으로 사용됨
  • 스터디 완료 전까지 deposit 반환 불가

I 기초
개요
1장. 알고리즘의 역할
1.1 알고리즘
1.2 기술로서의 알고리즘
2장. 시작하기
2.1 삽입 정렬
2.2 알고리즘의 분석
2.3 알고리즘의 설계
3장. 함수의 증가
3.1 점근적 표기
3.2 표준 표기법과 흔히 사용되는 함수
4장. 분할정복
4.1 최대 부분배열 문제
4.2 행렬 곱셈을 위한 스트라센 알고리즘
4.3 점화식을 풀기 위한 치환법
4.4 점화식을 풀기 위한 재귀 트리 방법
4.5 점화식을 풀기 위한 마스터방법
4.6 마스터 정리의 증명
5장. 확률적 분석과 랜덤화된 알고리즘
5.1 고용 문제
5.2 지표 확률 변수
5.3 랜덤화된 알고리즘
5.4 확률적 분석과 지표 확률 변수의 기타 활용

II 정렬과 순서 통계량
개요
6장. 힙 정렬
6.1 힙
6.2 힙 특성 유지하기
6.3 힙 만들기
6.4 힙 정렬 알고리즘
6.5 우선순위 큐
7장. 퀵 정렬
7.1 퀵 정렬
7.2 퀵 정렬의 성능
7.3 랜덤화된 퀵 정렬
7.4 퀵 정렬 분석
8장. 선형 시간 정렬
8.1 정렬의 하한
8.2 계수 정렬
8.3 기수 정렬
8.4 버킷 정렬
9장. 중앙값과 순서 통계량
9.1 최솟값과 최댓값
9.2 선형적인 평균 수행시간에 선택하기
9.3 최악의 경우선형 시간에 선택하기

III 자료구조
개요
10장. 기본 자료구조
10.1 스택과 큐
10.2 연결 리스트
10.3 포인터와 객체 구현하기
10.4 루트 있는 트리 표현하기
11장. 해시 테이블
11.1 직접 주소 테이블
11.2 해시 테이블
11.3 해시 함수
11.4 개방 주소화 방법
11.5 완전 해싱
12장. 이진 검색 트리
12.1 이진 검색 트리의 개념
12.2 이진 검색 트리에 대한 질의
12.3 삽입과 삭제
12.4 임의로 만들어진 이진 검색 트리
13장. 레드블랙 트리
13.1 레드블랙 트리의 특성
13.2 회전
13.3 삽입
13.4 삭제
14장. 자료구조의 확장
14.1 동적 순서 통계량
14.2 자료구조 확장 기법
14.3 구간 트리(349~)

잘못된 부분에 대한 지적은 언제든지 감사히 받겠습니다. 포스팅의 첫번째 목적은 작성자의 학습이므로 Context가 틀어지는 경우가 있을 수 있습니다.
rochan87@gmail.com

자료구조 알고리즘은 꼭 필요한 것인가?