메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

python 언어를 이용한 알고리즘 학습의 훌륭한 지침서가 되어줄 책

jrcfore***

|

2023-11-25

알고리즘 인사이드 with 파이썬

“17년 차 베테랑 개발자가 직접 풀고 해설한다!” 학생, 취준생, 주니어, 역량 개발이 필요한 모든 개발자를 위한 86개 문제 풀이로 사고력을 키우는 알고리즘 & 자료구조 입문서

  • 저자 : 손혁제
  • 출간 : 2023-10-19

 

파이썬 언어를 이용한 알고리즘 풀이 입문을 희망하는 모든 개발자들의 훌륭한 지침서가 되어줄 책

 

이 책은 Leetcode base의 문제들로 구성된 python 기반의 알고리즘 문제 풀이를 위한 지침서이다.

 

알고리즘이라는 학문은 전산학이 출현하기 이전부터 주목받았던 학문이다. 당시에는알고리즘이라고 불리지 않았을 뿐이지, 무엇인가 문제의 풀이. 그리고문제에 대한 접근 등등 이 모든 것들이 알고리즘의 한 형태였다고 이해하면 된다.

 

이러한 원초의 문제들에서 공통화된 문제 해결 방법을 도출하여 역은 것을 우리는 공식이라 하며 컴퓨터학에서는 이를알고리즘 기법이라고 한다. , 알고리즘은 하나의 정형화된풀이법인 동시에 효율적인 처리 방식을 술 한 학문이다.

 

이런 알고리즘이 엄청나게 주목받았던 시기는 아마도 구글이라는 회사의 출현과AI의 등장을 꼽을 수 있다. 10년 전쯤 세계 회사 복지 순위에 구글이 톱클래스에 뽑히며, 사람들 사이에 구글 입사에 관한 입소문이 돌았고, 그 사이에서 알고리즘을잘 푸는 프로그래머가 구글에 조인하는 일등 조건이다 (당시 구글은 창의력 문제로써 굉장히 독특한 문제도같이 출제하고 있었다.)라는 입소문이 돌았다. 무엇보다 이사실을 가장 잘 입증한 사건은 2015 ~ 2017년쯤에 등장하였던 이세돌과 알파고의 바둑 대결일 것이다. 이 당시 사람들은 알고리즘이 무엇인지, 어떤 학문인지에 대해서 잘모르고 있었지만 이세돌과 알파고의 대결을 보며 알고리즘의 대단함 그리고 알고리즘이 무엇인지에 대한 이해 수준이 높아졌다고 생각된다.

 

그렇기에 알고리즘이라는 학문은 위의 여러 사건들을 기점으로 많은 IT 회사에서 (국내의 경우 네이버, 카카오 등)차용하여 입사 프로세스의 한 과정에 포함시킴으로써 개발자들의 역량 중 가장 으뜸으로 평가하는 영역이 되었다.

 

이쯤에서 알고리즘이 왜 주목받기 시작했고 왜 많은 IT 회사들에서입사 프로세스에 차용하게 되었는지에 대해서는 각설하고, 위의 도서에 대해서 이야기해 보겠다.

위 도서는 python이라는 언어를 기반으로 세계적으로 유명한 알고리즘문제 사이트 leetcode의 문제 중, 비중이 높은 문제들을선별하여 풀이법을 역은 책이라고 할 수 있다.

 

더욱이 python의 자료구조에 상당 부분 중점을 두었다는 점에서위 책이 여러 기타 책들과 차이점이 있다고 할 수 있다.

 

따라서 python에 대한 문법적 지식이나, 자료 구조 정보가 미약한 프로그래머라면 위의 도서를 통해 학습해 보시길 권장한다.

 

【책의 구성】 "알고리즘 인사이드 with 파이"의 구성은?

 

이 책은 총 4개의 파트로 구성되어 있으며, 1파트와 2파트에서는 "파이썬의문법" "기본 자료 구조"를 설명하고 있으며 이후 3파트와 4파트에서는 "알고리즘 풀이"에 대해서 술하고 있다.

이번 리뷰에서는 챕터보다는 파트별로 선정하여 공통된 특징들을 추려 정리해 보았다.

 

 

1 - 2 파트

이 책이 기타 다른 알고리즘 도서와 차이점을 갖는 이유는 1파트와 2파트의 비중을 상당히 높게 두었기 때문이라 생각된다. 그만큼 알고리즘의 문제를 바로 접근하는 것도 의미가 있겠지만, 이미제공하는 lib 혹은 자료구조를 잘 알고 문제의 접근하는 것이 훨씬 중요하다는 것을 저자는 이미 알고있었기에 이 부분에 비중을 두지 않았을까란 생각이 들었다.

 

왜냐하면 알고리즘 테스트나 혹은 대회에서는 본인이 자료구조를 직접 구성하고 이에 대한 처리를 구현하는 것도 좋은접근 방법이 될 수 있으나, 이미 수십 년간의 경험치가 누적된 각 언어들의 lib, stl에서 관련 문제를 푸는 데에 필요한 유사 자료구조를 제공하지 않는 경우는 거의 없기 때문이다. 그렇기에 위의 파트를 심도 있게 학습한다면 추후 알고리즘 문제를 푸는 데에 있어서 한층 수월할 것이라 생각된다.

 

 

 

3 -4 파트

3파트와 4파트에서는 알고리즘문제를 제시하고 이를 어떻게 풀면 좋을지에 대한 아이디어 도출 그리고 코드화, 이후 풀이에 사용한 알고리즘평가 순으로 각 챕터가 구성되어 있다. 특히, Note 부분을통해 추가적인 팁을 제공하고 있다는 점에서 학습자에게 다양한 지식을 제공하기 위해 저자가 많은 노력을 기울였다는 생각이 들었다.

 

그리고 위의 문제들은 대부분이 (혹은 전부가) leetcode의 것을 참고한 것인 만큼. 기존의 leetcode 사이트 상의 영어로 인한 문제 접근에 어려움이 있던 분들이라면 위 책을 통해 이전보다 수월하게알고리즘이라는 학문을 실습할 수 있을 것이라 생각된다.

 

솔직히 leetcode의 지금까지 출제된 전체 문제 2941개 중에서 이 책에서 선별된 86개의 알고리즘은 핵심 오브핵심이라 생각하면 될만큼 의미가 깊은 문제들이다. 따라서 이 문제들을 하나하나 차근히 학습하길 권장한다.

 

【 알고리즘 인사이드 with 파이썬을 읽고 나서 】

 

한때 IT 업계에서는 알고리즘 문제의 풀이 수준이 곧 회사에서의 개발자의생산력 즉, 개발 능력이라고 생각했던 적이 있다. 하지만, 막상 알고리즘만을 잘하는 사람들을 개발 부서에 대거 앉혀 놓고 보니 솔루션의 전체적인 설계 수준과 가독력 그리고알고리즘 문제 외적으로 존재하는 수많은 문제의 해결에 있어서 그리 효율이 높지 못하다는 것을 깨닫게 되었다. 그리고이내 이에 대한 인터뷰 프로세스를 개선해가기 시작했다.

 

알고리즘이라는 학문은 굉장히 중요한 학문이 맞다. 하나의 문제가 주어졌을때 그 문제를 해결하기 위한 적당한 설계와 적정 수준의 문제 해결에 필요한 자료구조의 이해, 그리고이에 대한 접근법은 대부분의 프로그래밍에 있어 필수로 요하는 지식이기 때문이다.

하지만, 이에 못지않게 하나의 서비스를 설계할 때 이를 큰 그림으로펼쳐 각 부분의 유기적인 연관 관계를 파악하고 이를 효율적으로 연결하는 큰 그림을 설계할 줄 아는 능력도 중요하다.

 

그렇기에 알고리즘뿐만 아니고, DB, 네트워크, 소프트웨어 아키텍처, OS 등등 모든 학문에 있어서 적정 수준의심도 있는 지식을 쌓길 권장 드린다.

 

본 도서는 "한빛미디어<나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?