문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 자료구조 (문단 편집) == 여담 == 데이터를 컴퓨터로 처리하는 방식을 다루는 것이기 때문에, 구현을 생각하지 않는 아주 추상적인 이론이 아닌 이상 '''반드시''' 사용해야만 하는 기초 이론이다. 자신이 [[프로그래머]]가 되고 싶다면 최소한 '''[[연결 리스트]]'''와 '''[[트리(그래프)#s-4.1|이진 트리]]'''는 평생 머릿속에 담아두고 있어야 한다. 이 두 자료구조를 이해하지 못하면 스스로 알고리즘을 설계하는 데 '''엄청난 애로사항'''이 꽃핀다. B트리나 AVL트리 같은 건 몰라도 된다. 따지고 보면 B트리와 AVL트리는 그냥 '''균형이 자동으로 잡히는''' 이진 트리로, 전용 알고리즘에 의해 관리되는 특수 자료구조에 불과하다. 즉 이진 트리의 '''응용형'''이다. [[그래프]]는 연결 리스트의 응용형. 이진 트리는 [[그래프]]에 어떤 제약이 가해진 특수 형태. 이런 식으로 가지쳐 나가는 거라(책에 따라 반대로 서술하는 경우가 있다. 그래프는 이진 트리에서 제약을 제거한 거라는 식으로) 저 두 자료구조는 가장 중요하다. [[Python]]이 인기 있는 이유 중 하나는 파이썬의 기본 자료구조인 리스트, 튜플, 딕셔너리가 사용하기 편리하며 데이터를 다루는 데 효과적이기 때문이다. 하지만 [[Python]]은 정작 자료구조 구현 실습에는 좋지 않은 언어인데 리스트, 튜플, 딕셔너리 같은 기본 자료구조들이 [[C]]로 빠르게 구현되어 있고, [[Python]]에서 만든 프로그램 만으로는 절대로 저런 기본 자료구조들의 속도를 따라잡을 수 없기 때문에 [[Python]]에서 직접 [[연결 리스트]] 같은 것을 구현하는 것은 실용성이 없다. 그래서 [[Python]]으로 자료구조나 알고리즘을 실습한다면 최소한 [[그래프]], [[트리]], 혹은 [[추상대수학]]에서 쓰이는 [[군]], [[다항식]], [[텐서]] 자료구조 이상은 가야 Nontrivial하게 구현해야 할 의미가 있고 이건 이런 자료구조들이 리스트, 튜플, 집합, 클래스 위에 파생해야 만들 수 있기 때문이다. [[면접]] 등의 상황에서 [[Python]]을 쓴다는 것을 어필하려면 [[Python]]을 써서 Nontrivial하게 풀 수 있다는 것을 증명해야 하기 때문에 [[Python]]으로 시작했다면 그만큼 수학적으로 어려운 문제를 건드려야 한다는 점을 명심하자. [[전산직 공무원]] (전산 개발) 시험에서는 9급의 경우 [[컴퓨터일반]] 과목에서, 7급의 경우 '''자료구조론''' 과목에서 다뤄지는 내용이다. 컴퓨터 관련 학과 학생들을 굉장히 힘들게 하는 과목 중 하나인데, 기초 프로그래밍에 비해 난이도가 확 뛰는 데다가 자구를 모르면 이후 과목을 이해할 수도 없기 때문에 좋건 싫건 ~~악으로 깡으로~~ 들어야 한다. 교수마다 다르긴 하지만 이 과목은 과제량도 매우 많은 편이다. 기초 프로그래밍은 수월하게 뗐는데 자구에서 낙오되고 이쪽 진로는 GG치는 학생들도 많다.[* 자구를 모르면 알고리즘을 이해하는 거 자체가 불가능하고, 이 두 과목을 통달하지 못한다면 코테 문제는 건드릴 수도 없다. 그래도 혼자 자료를 찾아 공부하다 보면 프로그램을 빌드할 수는 있지만, 최적화 능력이 매우 떨어지거나 취업 시 전공면접에서 대차게 박살날 가능성이 높다. 어찌저찌 취업은 성공하더라도 CS지식이 딸린다면 커리어에 한계가 있다.] 필수 과목이라 수강신청에 실패할 경우 커리가 대차게 꼬이고[* 보통 자구 미이수자는 이후 과목 수강신청이 아예 시스템상으로 거부되거나, 수업 첫날에 교수가 쫒아낸다.], 재수강이 필요한 학생도 많아서 컴퓨터 관련 학과에서는 계절학기의 단골 과목 중 하나이다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기