알고리즘 라이프 - 일상 속 스마트한 선택을 위한
알리 알모사위 지음, 정주연 옮김 / 생각정거장 / 2017년 12월
평점 :
절판


올해부터 코딩 교육이 의무화되어 초중고 학교에서 배우게 된다고 한다.

코딩 교육이라고 하니까 C++, JAVA 같은 컴퓨터 언어를 배워 바로 프로그램을 짜는 것으로 생각할 있으나, 그보다는 논리적 사고를 통한 문제 해결 능력을 기르는 쪽에 주로 초점이 맞춰져 있다 


보통, 주어진 어떤 문제를 해결하는 데에는 여러 가지 방법이 있을 있다. 어떤 방법을 사용하는지에 따라 문제가 해결 시간에 차이도 생기고, 결과가 잘못되거나 훌륭해질 수도 있다. 방법에 해당되는 것이 바로 알고리즘이다. 문제에 맞는 적절한 알고리즘을 선택했을 , 좋은 효율과 결과를 얻을 있는 것이다. 그러기에 코딩 교육에 있어서 중요한 것이 바로 알고리즘에 대한 이해와 지식이다. 


하지만 알고리즘 하면 벌써 겁부터 먹는 사람들이 많다. 복잡한 수학 공식과 원과 선이 연결되어 이리 가고, 저리 가는 그림들이 연상된다. 실제 역시도 전산일을 많이 해왔지만, 알고리즘 얘기하면 답답해지기는 마찬가지다.

특히 다른 사람에게 알고리즘을 설명하기는 쉽지 않은 일이다. 하물며 애들에게 완벽히 이해할 있도록 설명한다는 것은 더더욱 쉽지 않다. 학교에서 배운 것처럼 가르치면 하품만 하고 졸기 알맞다


그런데 알리 알모사위 '알고리즘 라이프' 이런 설명하기 어려운 알고리즘을 난해한 공식과 복잡한 설명 없이, 한 번쯤 해봤을 일상의 일이나 우리 주변에서 흔히 일어날 있는 상황을 만들어 알고리즘을 재미있게 얘기하고 있다. 


처음에 나오는 주제는 배열, 해시테이블에 관련된 것으로 빨래한 양말 맞추기로 설명하고 있다. 아주 기발한 설명이다. 누구나 집에서 빨래를 걷고, 어머니를 도와서 한 번쯤은 양말 개어 봤을 것이다. 가족들의 양말이 마구 섞인 상태에서 나는 어떤 식으로 분류를 했나 떠올려 보며 어떤 방법이 효율적인지 스스로 생각해보게 만든다. 


폭탄 세일에 자신에 맞는 셔츠를 찾기에서는 선형 검색과 이진 검색의 차이를 익히게 된다. 장보기 횟수를 최소로 하는 방법을 찾는대서는 데이터의 스택 구조를 배울 있다. 스택은 설거지나 양파 잘게 썰기, 엘리베이터 운송 시스템, 웹서핑과 같은 일상의 일로도 설명할 있다 


양복점에서 길을 잃은 주인의 이야기에서는 무작위, 오른손 법, 역추적과 같은 트레이 알고리즘을 알려주는데, 어린 시절 많이 해본 미로 길 찾기에 대한 알고리즘을 다루고 있는 것이다. 이는 최단 거리 또는 최소 중복을 찾는 그래프 이론과도 상관이 있는 알고리즘이다. 


이 밖에 쏟아진 우편물 정리, 유행에 뒤처지지 않기 위한 음악 정복, SNS 글자 줄이기 12가지 일상 이야기로 각종 정렬, 검색 알고리즘, 문자, 영상, 음악 압축 알고리즘, 우선순위 대기열, 링크드 리스트 등을 다룬다 


그리고 책에는 Log 지수함수가 나오는 1 수학 정도의 내용이 나오지만, 반드시 수학이 필요하지는 않으므로 크게 부담 가지지 않아도 된다. 다만 '알고리즘 라이프' 일종의 칼럼과 비슷한 형식으로 주제를 가볍게 다루고 있기 때문에 전반적인 이해나 활용에 대해 쉽게 있으나, 알고리즘에 대한 깊이 있는 지식을 쌓기에는 미흡하다. 대신 뒤에 나오는 참고문헌을 통해 깊이 있는 학습을 있게 안내를 하고 있고, 참고문헌 각각에 저자의 간단한 평도 함께 담아서 고르는데 도움을 주고 있다. 


'알고리즘 라이프' 나온 알고리즘 설명 방법은 확실히 기발하다. 실생활에서 이렇게 알고리즘을 활용할 있다는 것도 재미나다. 덕분에 쉽게 설명할 있는 방법을 찾았다. I 책을 통해 많은 사람들이 알고리즘과 친해질 있는 계기가 되었으면 좋겠다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo