Data Structure and Algorithm: Difference between revisions

From Innovation
Jump to: navigation, search
No edit summary
Line 5: Line 5:
두 교재는 비슷한 수준으로 설명이 되어 있어서 어느 책을 써도 상관없다. 뇌를 자극하는 알고리즘은 자료구조와 알고리즘이 같이 소개되어 있고 열혈 자료구조는 자료구조에 충실하다.  
두 교재는 비슷한 수준으로 설명이 되어 있어서 어느 책을 써도 상관없다. 뇌를 자극하는 알고리즘은 자료구조와 알고리즘이 같이 소개되어 있고 열혈 자료구조는 자료구조에 충실하다.  
# [한국어] "뇌를 자극하는 알고리즘," 박상현 저, 한빛미디어 (온라인 학습사이트 - [http://www.hanbit.co.kr/media/community/brain_default_board_list.html?bd_id=algorithm go])
# [한국어] "뇌를 자극하는 알고리즘," 박상현 저, 한빛미디어 (온라인 학습사이트 - [http://www.hanbit.co.kr/media/community/brain_default_board_list.html?bd_id=algorithm go])
#* 예제 소스 및 책 소개 페이지 [http://www.hanbit.co.kr/store/books/look.php?p_code=B3450156021 go]
# [한국어] "윤성우의 열혈 자료구조 - C언어를 이용한 자료구조 학습서," 윤성우, 오렌지미디어 [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788996094067&orderClick=LAH&Kc= go]
# [한국어] "윤성우의 열혈 자료구조 - C언어를 이용한 자료구조 학습서," 윤성우, 오렌지미디어 [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788996094067&orderClick=LAH&Kc= go]
#* 온라인 무료 강의 제공
#* 온라인 무료 강의 제공
#* 발표자료 및 온라인 무료 강의 페이지(책구매자에게 1년 구독권제공) [http://www.orentec.co.kr/teachlist/DA_ST_1/teach_sub1.php go]


==== 곁에 두고 익히면 좋은 책 ====
==== 곁에 두고 익히면 좋은 책 ====

Revision as of 16:20, 9 February 2018

Text Book

교재

주교재

두 교재는 비슷한 수준으로 설명이 되어 있어서 어느 책을 써도 상관없다. 뇌를 자극하는 알고리즘은 자료구조와 알고리즘이 같이 소개되어 있고 열혈 자료구조는 자료구조에 충실하다.

  1. [한국어] "뇌를 자극하는 알고리즘," 박상현 저, 한빛미디어 (온라인 학습사이트 - go)
    • 예제 소스 및 책 소개 페이지 go
  2. [한국어] "윤성우의 열혈 자료구조 - C언어를 이용한 자료구조 학습서," 윤성우, 오렌지미디어 go
    • 온라인 무료 강의 제공
    • 발표자료 및 온라인 무료 강의 페이지(책구매자에게 1년 구독권제공) go

곁에 두고 익히면 좋은 책

  1. [번역서] "다양한 예제로 학습하는 데이터 구조와 알고리즘 : 문제 해결법부터 개선법까지 (Data Structures and Algorithms Made Easy)," 나라심하 카루만치 저, 전계도 , 전형일 역, 인사이트 go
    • 소프트웨어 기술 직종 면접 준비에도 쓸 수 있을 만큼 다양한 예제를 포함.
  2. [번역서] "사전처럼 바로 찾아 쓰는 알고리즘 - 바로 동작하는 실전 코드로 정리한 알고리즘 사전,"조지 T. 하인만, 게리 폴리케, 스탠리 셀코 저, 전경원 역, 한빛미디어 go
    • 조금 더 깊이 있게 공부하고 싶다면 추천하는 책
  3. [한국어] "C 언어로 쉽게 풀어쓴 자료 구조," 천인국 저, 생능출판사 go
    • 부록으로 자료 구조의 개념을 이해할 수 있는 플래시 애니메이션 수록

개념 익히기 좋은 책

  1. [번역서] "Hello Coding 그림으로 개념을 이해하는 알고리즘 (Grokking Algorithms)," 아디트야 바르가바 저, 김도형 역, 한빛미디어 go
    • 개념 이해하기 아주 좋은 쉬운 책, 그림이 재미있음

Topics

  1. Backgrounds
    • Array
    • Pointer
    • Memory allocation
    • Data structure
    • Recursion
    • Time complexity of algorithms
  2. Data Structure
    • Stack
    • Queue
    • Linked List
    • Binary Tree
  3. Algorithms
    • Sorting
    • Searching
    • Hash Table
    • Graph


Syllabus (T.B.D.)

  1. 배열 vs 포인터
    • 개념
    • 크기 정하기
    • 메모리 할당
    • 포인터 연산자의 이해
    • 포인터 이해 연습문제
  2. 자료구조
    • 사전 학습: 자료구조란 무엇인가. 왜 써야하는가. 어디에 쓰일까. 친구와 토론하고 결론을 한 페이지로 정리해서 오기
    • 개념 이해
    • 포인터 연산자 추가
  3. 복잡도
    • 사전학습:
    • 표기법
    • 숙제:
  4. 링크드 리스트
    • 사전학습: 링크드 리스트란 무엇인가. 실 생활에 링크드리스트로 표현 가능 것들은 무엇일까. 링크드리스트로 표현 가능한 것을 배열로 표현할 수 없을까. 배열 대신 링크드리스트를 써야하는 상황과 이유는 무엇일까. 친구와 토론하고 내용을 1페이지로 정리하기
    • 개념잡기
    • 리스트에서 특정 값 탐색
    • 앞 중간 끝 삽입 삭제 동작
  5. 스택
    • 사전 학습: 스택이란 무엇인가. 실생활에 스택의 사용 실제 사례. 링크드 리스트로 스택 구현한다면. 배열로 스택 구현한다면. 어떤 경우에 배열을 쓰고 링크드리스트로 쓸까. 토론하고 내용을 1페이지로 정리하기
    • 개념 잡기
    • 자료구조: 배열 vs 포인터
    • 크기 정하기: 스태틱 vs 다이나믹
    • 입력과 삭제 동작
    • 숙제: 계산기 만들기
    • 사전학습: 큐는 무엇인가. 실 생활에 사용 예제는. 스택 두개로 큐를 구현하기. 토론하고 내용을 1페이지로 정리하기
    • 개념잡기
    • 자료구조
    • 입력과 삭제 동작
    • 숙제:
  6. 바이너리 트리
    • 사전학습: 바이너리 트리의 개념 잡기. 정렬이 되어 있는 자료(예: 사전)에서 자료를 찾는 방법과 바이너리 트리를 사용한 방법을 비교해보기. 바이너리 트리로 표현 가능한 것들이 무엇이 있을까.
    • 바이너리 트리 개념 잡기
    • 용어 정리
    • 자료구조: 배열과 포인터
    • 특정 값 찾기
    • 리프노드 삽입과 삭제
    • 중간 노드 삽입과 삭제
    • 루트 노드 삽입과 삭제
    • 숙제:


공부하는 방법에 대하여

  1. 나는 프로그래머다, "까치네, 깨비메일 개발자 특집" (E27 1부 E27 link, 2부 E28 link)