'일상 속 스마트한 선택을 위한'이라는 부재를 달고 있는 이 책은 개발자들이라면 잘 알고 있는 알고리즘을 일상생활에 비유해서 설명하고 있다. 얇고 그림도 많아서 금방 읽을 수 있는데 초반부의 내용은 꽤 쓸만하다고 느껴지기까지 한다. 그런데 뒤로 갈수록 일상생활과 멀어지더니 마지막 장에서는 이진 트리를 설명하고 있다. 역시 이동진 작가의 2/3 법칙은 진리인가 보다.
산더미처럼 쌓인 양말 짝을 맞춰라
빨래 후에 양말 짝을 찾을 때 어떻게 하는가? 첫 번째 방법은 양말을 하나 꺼내서 짝을 맞추고 다음 양말을 꺼낸다. 반복. 두 번째 방법은 양말을 여러 개 꺼내서 짝을 맞춰보고 빨래 더미에서 따로 분리해 놓는다. 역시 반복. 두 번째 방법을 컴퓨터에서는 캐시라고 하는데 사실 첫 번째 방법으로 짝을 맞추는 사람은 없을 것이다.
폭탄세일 셔츠를 쓸어 담아라
백화점에 폭탄세일 셔츠가 끝이 보이지 않을 정도로 걸려 있다. 대신 셔츠는 사이즈별로 정렬이 되어 있다. 내 사이즈에 맞는 셔츠를 찾으려면 어떻게 해야 하는가? 쉽게 생각할 수 있는 방법은 한쪽 끝에서부터 사이즈를 확인하며 전진하는 것이다. 그런데 내 사이즈가 XXL이고 XXS에서부터 찾기 시작했다면 거의 모든 셔츠를 확인해야 할 수도 있다. 이 시간을 줄이려면 적당히 중간부터 찾아 나가면 된다. 이 방법을 이진검색이라고 하는데 이해하기는 어렵지만 우리는 일상생활에서 대부분 이렇게 검색을 하고 있다. 책을 읽다가 책갈피를 끼우지 않고 잠들었을 때, 다음날 읽었던 부분을 어떻게 찾아가는지 생각해 보면 된다.
쏟아진 우편물을 주소에 따라 정리하라
우편물을 주소에 따라 정리해야 할 때 가장 쉽게 생각할 수 있는 방법은 가장 앞쪽 주소를 찾아서 꺼내놓는 작업을 반복하는 것이다. 삽입 정렬, 선택 정렬, 버블 정렬 같은 이차 시간 알고리즘이 이 방식을 사용한다고 보면 된다. 이를 더 빨리하기 위해서는 분할 정복법을 사용하면 되는데 우편물을 나눠서 정렬하고 다시 합치는 방식이다. 병합 정렬, 퀵 정렬이 이 방식인데 알고리즘을 보면서 이해하기는 어렵지만 역시 우리는 일상생활에서 이 방식을 쓰고 있다. 학창시절에 분단별로 시험지를 걷어서 합칠 때 썼던 방식을 생각해 보면 된다.
이 책을 보면서 역시 인간은 똑똑하고 컴퓨터는 멍청하다는 것을 새삼 느끼게 되었다. 일상적으로 당연하게 하는 방법을 컴퓨터에게 알려주기 위해서 얼마나 고생을 하고 있는 것인지. 내일도 이 멍청이와 씨름하러 가야 하는고만.
'책 > 과학,수학' 카테고리의 다른 글
숫자 없이 모든 문제가 풀리는 수학책 - 도마베치 히데토 (0) | 2020.12.12 |
---|---|
n분의 1의 함정 - 하임 샤피라 (0) | 2020.12.11 |
뇌 속에 또 다른 뇌가 있다 - 장동선 (0) | 2020.12.05 |
우리가 절대 알 수 없는 것들에 대해 - 마커스 드 사토이 (0) | 2020.11.18 |
별, 빛의 과학 - 지웅배 (0) | 2020.11.10 |
댓글