-
-
자료구조와 알고리즘 with 파이썬 ㅣ GOAT 시리즈
최영규 지음 / 생능북스 / 2023년 11월
평점 :
'자료구조'는 컴퓨터공학과에 입학을 하면 무조건 배우는 과목인데, 사실 꽤 어려운 과목입니다 처음 시작하면서 나오는 '스택'부터 개념혼란에 빠뜨리죠. <자료구조와 알고리즘 with 파이썬>도 바로 이 스택에서 출발해서 판을 키워갑니다. 중요한 점은 자료구조를 잘이해를 하면 그위에 쌓는 과목들이 매우 쉬워진다는 거죠. 파이썬이라는 프로그램도 쉬워집니다. 생성자의 의미도 알게 되고 컴퓨터에서 어떻게 자료가 배열과 배치를 하는지 알게 되면서 효율적인 프로그램이 가능해집니다. 이 자료구조를 근거로 알고리즘을 공부합니다. 챕터는 12강이고 12일과정과 24일과정을 통해 자료구조의 동작원리, 알고리즘, 알고리즘 설계전략을 알려줍니다. 학교에서는 자료구조와 알고리즘을 따로 배우는데 그것을 합쳐놓았습니다.
저자는 최영규 한국기술교육대학교 컴퓨터공학과 교수십니다. 주과목은 컴퓨터비전과 그래픽스십니다. 하지만 주로 내신 책은 자료구조책이십니다. <C++로 쉽게 풀어쓴 자료구조><두근두근 자료구조><파이썬 알고리즘>등 자료구조와 알고리즘 책을 많이 내신 분입니다.
자료구조의 자료는 data입니다. 컴퓨터는 데이터를 받아서 처리하고 결과를 돌려주는 구조이죠. 이 자료구조는 선형과 비선형이 있습니다. 선형은 스택, 큐,텍, 리스트이고 비선형은 트리, 그래프입니다. 이 모든 내용을 순서대로 배우게 됩니다. 스택은 무더기라는 뜻이죠. 과거 스택하면 후입선출이라는 소리는 기억이 납니다. 물론 왜 그런지에 대한 의문이 있었는데 이유보다는 상단스택을 통으로 보면 당연한 방식이죠. 큐는 스택과 달리 선입선출입니다. 이유는 몰려오는 자료를 줄을 세워 처리하는 겁니다. 큐가 복합된 것을 덱이라고 합니다. 리스트는 많이 사용하는 개념이죠. 프로그래밍의 기본이고요. 이는 데이터목록인데요. 데이터의 수정과 삭제, 추가가 쉬운구조이죠. 스텍과 큐와 달리, 입구 출구개념이 없습니다.
전반부에서 다룬 스텍,큐,리스트가 선형구조라면 트리는 비선형이죠. 트리모양자체가 선형이 될수가 없으니요. 자로 데이터탐색(자료검색)에 사용이 되죠. 이 자료구조는 컴퓨터를 이루는 기본바탕입니다. 자료구조를 복합적으로 활용하도록 알고리즘이 장착이 됩니다. 알고리즘은 정렬, 탐색, 그래프로 구분됩니다. 알고리즘은 '주어진 문제를 해결하기 위한 단계적인 절차'라고 합니다. 데이터가 입력되면 알고리즘이 작동을 하여서 데이터출력을 합니다. 굉장이 간단해 보이죠. 그리고 알고리즘으로 정렬, 탐색, 그래프까지 사용하는 방식을 파이썬으로 구현해봅니다.
알고리즘 방식을 알았다면 이것을 어떻게 이용할까입니다. 이를 전략설계라고 합니다. 이 목적은 문제해결입니다. 방식은 기존의 순서방식으로 할것인지 최근의 병렬방식으로 할 것인가를 결정해야 합니다. 알고리즘 설계방법은 많은데, 이 책에서는 억지기법, 탐욕적 기법, 분할정복, 동적계획법, 공간으로 시간벌기, 백트래킹 등의 방법을 알게 됩니다. 처음으로 소개되는 기법이 억지기법인데 이는 노가다이고 무식한 기법입니다. 공식을 안쓰고 무조건 더하거나 곱하는 방식이죠. 그리고 탐욕적기법이 있는데 이는 근시안적 방법이라고 합니다. 바로 그순간만 통하도록 하는 방법입니다. 이외에 대표적인 분할전략, 동적계획법, 백트래킹 등을 배웁니다. 그림과 도식을 이용해서 이해가 편하도록 배려를 했고 파이썬 코드로 코드가 어떤 의미인지 구체적으로 설명도 붙여두었습니다. 자신감이 높은 사람을 위한 quiz문제를 배치하고 마지막은 연습문제로 능력현상을 하도록 했습니다. 이 한권으로 자료구조와 알고리즘의 공부를 한꺼번에 해결할 수있는 좋은 기회였습니다.
본 도서는 출판사로부터 무상으로 받아서 주관적인 리뷰를 했습니다.