목록알고리즘 (4)
Scientia Conditorium
[책리뷰] 알고리즘 인사이드 with 파이썬 전반적인 소감 및 마음에 드는 부분 알고리즘과 자료구조의 기본적인 내용을 소개하면서 이를 통해 코딩 문제 풀이를 설명한 책입니다. 첫번째 장점은 자료구와 알고리즘을 설명하는데 이해하기 쉽도록 최대한 많은 그림이 삽입되었다는 점입니다. 보통 2차원 배열이라던가 트리 구조에서 순회하는 알고리즘들은 동작 방식이 한번에 와닿지 않는 경우가 많습니다. 그런 부분을 최소화 시키고자 그림을 통해 동작 순서를 자세하게 설명해줍니다. 아래 사진은 그런 예시들 입니다. 두 번째 장점으로는 오랜 시간동안 개발해온 저자가 엄선한 leetcode 86문제 입니다. 자료구조와 알고리즘을 설명해주고 이를 코딩문제에 어떻게 적용하는지 보여줍니다. 문제를 해결한 코드를 한줄한줄 자세하게 설..
[책리뷰] 이것이 자료구조+알고리즘이다 with C언어 이것이 시리즈 중 자료구조와 알고리즘이 합친 책이 등장했다. 예전에 'C언어로 쉽게 배우는 자료구조' 책이 유명했지만, 그보다는 이 책이 훨씬 더 깔끔하고 좋다. 제목에 with C언어를 붙여서 혼동을 최소화 시킨 것도 마음에 들었다. 자바와 파이썬 왕국에서 C언어로 책을 쓰다니! 라는 사람들이 있을 것 같지만, 자료구조만큼은 메모리 관리가 가능한 언어로 학습해야된다는 것이 내 지론이다. 이유는 어떠한 언어를 쓰던 컴퓨터 내부적으로는 비슷하게 동작하는데, 특히 자료구조의 경우 메모리 구조를 알고 있어야 이해하기 쉽기 때문이다. 따라서 C언어를 통해 메모리 관리를 직접 해보면서 자료구조의 동작 원리를 이해하는 것이 좋다. 이 부분에 대해서는 홍정모 박..
[책리뷰] 똑똑한 코드 작성을 위한 실전 알고리즘(Learning Arlgorithms) 학부 과정에서 알고리즘 수업을 수강했거나 기본적인 알고리즘을 알고 있는 이후에 보면 좋은 책이다. 여러 알고리즘을 소개하기 보다는 대표적으로 많이 사용하고 널리 알려진 알고리즘들을 조금 더 심도있게 다루고 있는 책이라고 생각하면 된다. 책에서 다루는 알고리즘으로는아래와 같다. 알고리즘 분석(시간복잡도, 공간복잡도, 성능 비교 방법) 해싱(키, 해시함수, 연결 리스트, 동적 해시 테이블, 완벽한 해싱) 힙(최대 이진 힙, 배열로 이진 힙 구성, 엔트리 이동의 구현) 정렬(교환, 선택, 삽입, 재귀, 병합, 퀵, 힙, 팀) 이진 트리(이진 탐색 트리, 탐색, 제거, 순회, 성능 분석, 자가 균형 이진 트리) 그래프(모델..
최근들어 한빛미디어에 자주 느끼는 점은 책 제목을 굉장히 잘 짓는 느낌이다. 이 책이 단순히 '수학적 최적화'라고 했으면 실망할 뻔했지만, 앞에 '제대로 배우는'을 달았기에 이 책이 수준이 높다는 느낌을 주고 있다. 결론은 프로그래밍보다는 수학책에 가까우니 수학적 지식이 어느정도 있는 상태에서 읽기를 권장한다. 단 한줄의 프로그래밍은 들어가있지 않다. 프로그래밍 공부를 하다보면 알고리즘 문제를 푸는 경우가 많은데, 대표적으로 외판원 문제, 탐색 알고리즘 등등 수학적 지식을 이용해야 할 때가 있다. 가령 반복문 한번 쓰고 해결하는 방법이라던가, 그런 것을 기대하고 이 책을 접했다. 그러나 내용 자체는 비슷하지만 설명 방법은 전혀 달랐다. 위의 이미지처럼 어느정도 수학 지식이 있는 사람들만 읽을 수 있을 정..