본문 바로가기
리뷰/도서

[리뷰] ACM ICPC, IOI/KOI 알고리즘 트레이닝

by Remover 2017. 7. 18.
반응형

<이 책은 '인사이트'로 부터 책을 지원받아 작성된 글입니다.>





[ 책소개 ]

Competitive Programming 자료 구조 및 알고리즘에 대한 기본 지식을 바탕으로국내외 프로그래밍 경진대회나 각종 알고리즘 테스트를 대비해문제 해결 능력과 효과적인 코드 구현 방법을 훈련할 수 있도록 구성된 책독자의 프로그래밍 역량을 한 단계 높여줄 명저많은 프로그래밍 관련 서적이 단순히 문제들과 그 풀이로 구성된 경우가 많은데 이 책은 문제들을 분류한 다음, 각 주제에 대한 기초 지식부터 소개한다. 정보 올림피아드로 훈련된 저자의 방대한 경험을 토대로 정성스럽고 효율적으로 쓴 명저다. 프로그래밍이라는 것은 단순히 프로그래밍 언어를 사용하는 기술이 아니고, 문제나 상황에 대한 체계적인 사고와 해법이 선행된 다음 마지막 절차인 구현 단계에서 프로그래밍 언어를 통할 뿐이다. 이 책은 여러 가지 주제에 대해 생각하는 방법, 생각의 기본을 제공하는 이론적 기초, 효율적으로 문제를 해결하는 팁 등을 제시해 독자들의 역량을 한 단계 높여줄 것이다.



목차 ]



[ 책을 읽으며... ]




선수지식이 필요합니다.


 이 책은 초보 프로그래머를 대상으로 쓰인 책이 아니다. 라고 나와있다. 책 목록만 봐도 알겠지만 알고리즘 자체가 처음 프로그래밍을 접하는 사람이나 알고리즘에 대한 기초지식을 쌓기 위한 독자에게는 어울리지 않는 책이다. 어느정도 알고리즘 대회에 관심이 있고 알고리즘에 대한 이해가 있는 사람들에게 맞는 책이다. 이 부분은 책을 구입하기 전에 가장 먼저 알아야 할 부분이다.




C/C++


책을 보다보면 C/C++ 그리고 JAVA. 세 종류의 언어를 사용해서 알고리즘을 구현하고 있는 모습을 볼 수 있을 것이다. 그래서 선수 지식이 필요하다고 하는 것이다. 이 책은 알고리즘 책이지, 언어에 대한 기초 문법을 알려주는 책이 아니기 때문이다.





다양한 예제 그리고 연습문제


 책을 읽으면서 몰랐던 알고리즘에 대해 많이 알게 되었다. 대회 문제라서 그런지 몰라도 난이도가 높은 문제들이 가득하다. 공부를 해서 다 사용할 수는 없더라도 어떤 문제가 있을때 어떤 알고리즘을 쓸 수 있는가에 대해서는 공부 할 수 있었다. 나만 그런 생각이 드는지 모르겠지만 이 책은 가독성 면에서는 조금 불편함이 많다. 코드를 풀이하는 알고리즘 책이기 때문에 가독성이 좋을 것이라 생각했는데 필요없는 문장이 많아서 정작 중요한 내용은 눈에 들어오지 않은 경우가 종종 발생했다. 


 장마다 마지막 부분에 '이번 장을 마치며' 와 틈틈이 있는 '연습문제'가 생각을 정리하는데 꽤 많은 도움을 준다.



[ 마무리 ]

이 책을 구입하기 전에 알아야 할 것은 단 하나! 알고리즘 기법을 위한 책이 아닌 대회와 관련 된 알고리즘이 주를 이루고 언어 문법은 이미 알고 있어야 할 것!


디자인    ★★☆☆☆ 표지가 너무 어지러움

내용       ★★★☆☆ 신기하게 푸는 알고리즘도 많다

난이도    ★★★★★ 난이도 최상




댓글