AUSG / QCS-Books

Quick Circle Study - Books
MIT License
8 stars 0 forks source link

[Book Reviews] 2019 11 03, 홍나단 - 그들은 과연 알고리즘을 알았을까?(2018년) #4

Open NDjust opened 4 years ago

NDjust commented 4 years ago

Read this book from: 2019 11 03~

Short Reivew : 알고리즘이 중요한걸 알지만, 알고리즘만 보면 손가락이 아파.. 자주 중도 포기를 했지만, 이번 책을 통해 다시 알고리즘이 왜 필요하고 어떻게 접근하면 좋을지에 대해 배울 수 있는 기회가 될거 같아 기대가 됩니다.

Part 0 개요.

알고리즘이 우리 삶에 어떻게 적용되어져 있고, 왜 효율이 좋은 알고리즘이 필요한지에 대한 당위성과 전체적이 책의 흐름 및 어떤 방향으로 책을 읽으면 좋을지에 대해 알 수 있었습니다. 또한 개요를 보면서 단순히 딱딱한 개발자스러운 용어가 아닌 풀어서 접근하는 느낌이 강해 저한테 적절한 수준의 책 선정이 아니였나라는 생각이 들었습니다.

Part1 알고리즘

1-1.계산 및 알고리즘.

  1. 계산을 이해하는 길.
    • Part1-1인 계산 및 알고리즘에서는 컴퓨터에서 계산은 단순히 수를 계산하는 것보단 문제를 해결하기 위한 과정이고, 또한 그 과정을 어떻게 풀어나가야 하는지에 대한 관점을 제시해준다. 평소에 알고리즘, 시간 복잡도라고 하면 단순히 문제를 풀때, 컴퓨터의 관점에서 풀기보단 그냥 빠르게 이 문제를 해치운다는 느낌으로 공부 혹은 문제를 푸는 경우가 많았는데, 이번 챕터를 통해서 왜 체계적으로 계산을 풀어나가야 할지에 대한 당위성과 어떻게 하면 올바르게 문제, 알고리즘에 접근할 수 있을지에 대한 제가 여태 몰랐던 관점을 제시해줘서 좋았습니다.
      그리고 문득 다른 분들은 알고리즘을 푸시거나 프로그램을 짜실 때 어떻게 접근하고 로직을 짜시는지에 대해 궁금해져, 다음 모임때 이 주제로 가볍게 이야기를 나눠도 좋을 거 같다.
  2. 계산이 실제로 벌어질때.
    • 알고리즘은 재사용성이 있기 때문에, 매개변수로 부터 다양한 값들이 들어온다. 그래서 공간 복잡도, 시간 복잡도를 따져 구성을 해야하는데, 이런 딱딱할 수 있는 설명을 헨젤과 그레텔의 조약돌 이야기로 풀어 설명해줘서 한층 더 쉽기 다가왔다.

1-2. 표상과 데이터 구조.

  1. 기호의 신비
    • 기호의 개념은 "표상의 개념을 간결한 형태로 표현해줄 수 있기 때문에 중요" 이 내용에서 나오는 기호와 기표는 표상을 나타내기 위한 수단으로 알고리즘에서 '표상'을 명확히 정의하는데에 있어 중요성을 강조하고 있다. 다시 한번 느끼는 거지만 참으로 알고리즘을 이렇게 접근하고 푸는 건지 생각지도 못했고, 사실 쉽기 이해가 되지 않는다.(그래서 이 부분은 다시 읽어 볼 예정..!)
  2. 사실을 좇는 소품
    • 알고리즘에서 데이터 타입과 데이터 구조의 중요성을 다양하게 접근해서 쉽게 설명해줘서 좋았다. 그리고 먼가 '표상'이라는 개념에 점점 친해지는 느낌..들 수도 있을거 같다.그리고 많은 컴퓨터 과학자들이 어떻게 하면 효율적으로 정말 많은 고민을 통해 데이터 구조를 정했다는게 새삼 느껴지고 존경스러웠다.

1-3. 문제 해결과 한계

  1. 완벽한 데이터 구조를 찾아서
    • 리스트, 트리, 스택과 같은 다양한 데이터 구조에서 가장 적합한 것을 찾기 위해서는 최소, 최대를 보는 것이 아니라 최적의 '균형'을 찾는 것이 가장 중요한 것을 보면서 내가 처리하는 데이터의 다양한 케이스를 고려해서 작성하는 것이 중요하다고 느낌.
  2. 좋은 정렬 방식을 골라내기
    • 정렬은 알고리즘 문제에서부터 다양한 곳에서 활용 되는데, 어떤 기준을 가지고 사용해야하는지에대해 알게되어서 좋았음.
rayleighko commented 4 years ago

오프라인 스터디에서 나눌 이야기 #4 "문득 다른 분들은 알고리즘을 푸시거나 프로그램을 짜실 때 어떻게 접근하고 로직을 짜시는지에 대해 궁금해져, 다음 모임때 이 주제로 가볍게 이야기를 나눠도 좋을 거 같다."

roeniss commented 4 years ago

ㅋㅋㅋ 명진이 무서워유... 이 로직 얘기는 재밌을 것 같네요. 나단이는 알고리즘 많이 풀었는갑다... 얘기좀 팍팍 해봅시당

NDjust commented 4 years ago

@roeniss 저는 알고리즘 찌끄레기입니다..!

NDjust commented 4 years ago

이번주는 문제 해결과 한계 챕터에서 풀기 어려운 문제 파트와 Part2인 언어의 의미를 읽었다.
알고리즘은 어떻게 접근하느냐에 따라 연산속도 및 결과가 천차만별인데, 이번에도 책은 어김없이 다양한 비유를 통해 최대한 쉽게 설명해주고 있다.(하지만 완벽히 습득 못해서 문제이지만) 그래서 최대한 책을 읽은 김에 책에 있는 내용을 추후에 알고리즘 공부에 도움이 될 수 있도록 적용해봐야겠다...! 그리고 새로운 챕터 언어의 의미에서는 "오버 더 레인보우"라는 곡을 시작으로 음악의 음계와 멜로디등을 통해 언어의 의미를 설명해주고 있다. 나름 신선하고 쌈박한 설명이라 그나마 재밌게 읽었던거 같다. 그리고 결국 언어도 잘 구조화된 하나의 알고리즘이 아닐까..라는 생각과 함께 차주에도 셤기간이지만 꾸준히 읽어봐야겠다.