가장 쉬운 독학 알고리즘 첫걸음 : C&자바편 - 개념 이해 → 코딩 → 계산 과정 추적으로 익히는 단계별 알고리즘 학습법 가장 쉬운 독학 알고리즘 첫걸음
야자와 히사오 지음, 박광수 옮김 / 동양북스(동양문고) / 2021년 10월
평점 :
장바구니담기


이번 도서 후기는 알고리즘의 개념과 풀이 과정을 자세히 설명하여 이를 토대로 실습도 겸할 수 있는 책이다.

올해 알고리즘 관련 책을 몇권 정도 읽고 실습을 했었다.

내가 보았던 알고리즘 책마다 약간의 특/장점이 있지만 이번 후기의 도서는 알고리즘 계산 풀이과정을 그림과 설명으로 자세히 쓰여져 있어서 개인적으로 풀이과정을 이해하는데 많은 도움이 되었다.

내가 보기엔 이 책의 가장 큰 장점이 이 부분이 아닌가 싶다.

이 책에 앞부분에 학습 진도표가 나와있어 2주 / 30일 / 4개월 단위로 학습할 분량들이 정해져 있어서 2주 / 30일 / 4개월 단위로 학습하고자 하는 분들이라면 이 분량대로 따라하면 될 것으로 보인다.

나의 경우에는 2주는 조금 길어서 1주일을 목표로 공부하였다.

이미 알고 있는 개념이나 내용이 조금 짧은 부분은 2챕터씩 보았고, 먼저 개념 내용을 이해하고 실습을 눈으로 따라가면 이해한 뒤에 실습 문제를 풀어보았다.

이 책은 C와 자바 언어로 실습을 해볼 수 있는데, 나의 경우에는 C언어 부분의 풀이과정과 실습은 건너뛰고 자바 언어 부분의 풀이과정과 실습 부분만 보았다.

다른 알고리즘 책과 달리 이 책은 의사코드를 통해서도 알고리즘을 작성하는 부분이 설명되어 있다.

나의 경우에는 내가 공부했던 알고리즘 책에서는 의사코드를 통해 알고리즘을 작성했던 내용은 없었다.

의사코드를 통해 알고리즘을 작성하는 건 처음보았기 때문에 챕터 1에서 설명하는 의사코드 표기방법을 익혔다.

이후 챕터 2에서부터 알고리즘을 의사코드와 자바코드로 표현한 부분을 함께 보았는데, 자바코드로만 작성되었던 알고리즘을 의사코드로도 함께 보니 의사코드가 짧고 간결하여 한눈에 이해하기 좋았다.

그래서 나의 경우, 의사코드로 먼저 이해한 뒤 자바코드를 참고하였다.

챕터 마지막 부분에는 확인 문제가 있어 앞에서 다룬 실습 문제를 의사코드로 표현한 내용을 풀어보거나 개념에 대해 객관식, OX 문제로 풀어볼 수 있어 다시한번 챕터에서 중요하게 다룬 부분을 정리하기에 좋았다.

그리고 보충설명 부분과 찾아보면 도움이될 링크 소개도 있어서 이 부분은 건너뛰지 않고 필수로 이해하고 소개된 링크를 찾아 공부하였다.

10 챕터가 끝나도 마지막 챕터에는 실력 확인하기라는 부록이 있는데 이부분은 앞에서 설명하고 익혔던 알고리즘을 토대로 문제를 풀어볼 수 있어서 혹시나 부족한 부분은 다시 해당 챕터로 돌아가서 보충학습을 하면 좋을 듯하다.

마지막으로 이 책에서 가장 와닿았던 내용을 적어보려고 한다.

알고리즘을 마스터하려면 반복 연습이 필요하다.

알고리즘은 누구나 처음에는 어려울 수 있다.

이 책의 말처럼 나도 반복학습이 필요하다고 느낀다.

계속해서 반복하다 보면 처음보다 실력이 향상된 것을 느낄 수 있을 것이다.

나도 그렇게 느껴왔기 때문에 데일리로 알고리즘 문제를 풀어보고 있다.

알고리즘은 달달 외워서 배우는 것이 아니다.

이 부분을 알고리즘 문제를 풀면서 공감하는 부분이다.

먼저 개념에 대해 이해하고 이를 토대로 문제를 풀어가야 한다.

달달 외워서 푸는 것은 기초적인 부분은 빠른 답을 얻을 수 있지만 심화 문제를 푸는 데에 있어서는 어떻게 접근하고 풀어가야 하는지 계획을 세우기 어렵다.

늦어지더라도 꼭! 개념을 이해하도록 하고, 만약 해결하지 못한 문제가 있다면 다른 사람의 풀이 과정이나 실습을 따라서 작성해보면서 풀이 과정을 이해하도록 해야 한다고 생각한다.

마지막으로 이 책에 알려주는 알고리즘을 생각하는 비결에 대해 작성해본다.

1) 처리를 구분하고 차근차근 거듭합니다.

2) 서두르지 안혹 천천히 생각하며, 일단 뭔가 처리해봅시다.

3) 처리에 의한 숫자의 변화를 추적합니다.

4) 더 나은 절차를 생각합니다.

5) 몇 번이고 반복 연습하여 내 것으로 만듭니다.

계속해서 노력하다보면 어느 순간 뒤돌아 보았을 때 처음보다 향상된 실력을 발견할 수 있을 것이라고 생각한다.

알고리즘을 시작하려는 분들이나 계산과정과 단계별 학습이 필요한 분들에게 추천한다.



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