『누워서 읽는 알고리즘』 임백준

몇 달 전부터인가 "나는 프로그래머이다"라는 팟캐스트를 듣다가 알게 된 책이다. 평소에 퀴즈같이 억지로 문제를 만들어 내고 그것을 풀어 나가는 일에 그다지 흥미가 없기도 하고, 그런 일에 시간을 할애할 여유도 없었는데, 하던 일만 하다보니 머리가 굳어져 간다는 생각이 들어, 최근에는 알고리즘에 관련한 책들로 굳어진 머리를 풀어 주곤 한다.

『누워서 읽는 알고리즘』은 본격적인 알고리즘 문제 풀이도 아니고, 프로그래머들이 보곤 하는 인터뷰 대응 알고리즘 서적도 아니다. 그저 에세이 같은 형식으로 가볍게 알고리즘에 접근하려는 방식을 취하고 있다. 물론, 그렇다고 해서 책의 제목에서와 같이 누워서 여유있게 책장을 넘길 수 있는 책이라고 볼 수는 없다. 일부 내용은 비교적 단순하지만, 상당히 어려워서 포기하는 문제도 상당수 수록되어 있다.

책을 읽으면서 재귀함수에 대한 편견을 좀 줄일 수 있었다. stack overflow error를 몇 번 경험해본 후에는 재귀 함수 자체에 대한 거부감이 생겨서 그냥 for 문으로 돌리고 말자라는 생각으로 재귀 함수를 기피하는 경향이 있는데, 마냥 기피할 것이 아니라 필요에 따라 적절히 사용해야 겠다는 생각이 들었다. 특히, 꼬리 재귀tail recursion 라는 녀석을 알게 되었는데, 좀 더 공부를 해봐야 할 것같다. 과연 얼마나 성능 저하를 막을 수 있을 것인지...

이상욱