리뷰&후기/개발자가되고싶다면

[프로그래밍] 문제 해결력을 높이는 알고리즘과 자료구조 후기

반나무 2022. 3. 26. 17:06
 

문제 해결력을 높이는 알고리즘과 자료 구조 - 교보문고

코딩 테스트, 프로그래밍 경진대회 전 필독서! | 알고리즘 문제를 풀 수 있다! 더 나아가, 설계하고 개선하고 확장하여 새로운 무언가를 생각해 낼 수 있다! 컴퓨터 과학을 배운다면 피할 수 없는

www.kyobobook.co.kr

 

회사에서 일하면서 TAC Time이 굉장히 중요하다는 사실을 알고 어떤 공부가 도움이 될까 생각했을때, 알고리즘과 자료구조 공부가 도움이 된다고 생각해 리뷰이벤트를 신청했고, 당첨돼 받은 책입니다.

 

출장에서 돌아와 주말동안 읽어봤습니다.

 

이 책을 읽기위해서 필요한 기술

  • 중등수학 -> 딱히 수학에대한 지식을 요구하지는 않지만, 대부분 기호로 풀이하기에 수학책을 많이 본사람이 아니면 이해하기 어렵다고 생각한다.
  • C++ -> 코드를 이해하고 예제를 바로 실행 가능한 수준
  • Python -> 코드를 이해하고 예제를 바로 실행 가능한 수준
  • 시간 복잡도에 계산 방식에 대한 이해 -> 책에서 시간 복잡도가 뭔지는 알려주지만 뜬금없이 연습문제로 구해보자! 시키기 때문에 우선 아래의 글을 보고 이해한다음 책을 보는게 도움이 될 것 같다.
 

코드의 시간 복잡도 계산하기

안녕하세요. 저는 휴먼스케이프 인턴 Jason입니다.

medium.com

 

[Algorithm] 시간 복잡도(Time complexity) 학습

시간 복잡도 : 입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼만큼 걸리는가?

velog.io

 

알고리즘 시리즈 - 시간 복잡도

알고리즘 개요지난 포스트인 알고리즘 시리즈 - 시작에서는 우리는 알고리즘을 특정 문제를 해결하기 위한 일련의 계산과정으로 입력, 출력 그리고 계산과정 이 존재한다고 정의했었습니다. 또

joontae-kim.github.io


배운점

시간복잡도 계산법

 

시간복잡도를 연습문제를 풀며 동료한테 물어봤는데 이런 대답을 들었다.

시간복잡도를 한번에 구하기 어려우면,
우선 코드를 대략 짠다음. for문을 줄여나가는 방식으로 시간복잡도를 맞춰나가 보는것도 좋다.

 

용어 정리

시간복잡도 : 이 알고리즘이 작동하는데 시간이 어느정도가 걸릴것인가를 판단하는 척도.

-> 많은 데이터를 다루는 일이 많기 때문에 대부분은 고차항의 함수를 복잡도로 삼는다.

 

탐욕법 : 선택 과정에서 나중을 생각하지 않고 바로 다음 단계에서 가장 좋은 선택을 하는 방법.

-> 최적의 해를 구하는것이 실제로는 쉽지 않기 때문에 탐욕법을 사용해 근접한 해를 구해보면 좋다.

 


후기

  • 시간복잡도 파트는 굉장히 다양한 기법과 그에 맞는 시간복잡도를 구하는 연습문제를 토대로 이 상황에서는 어떤 알고리즘을 사용하는것이 도움이 되는지 확 마음에 와닿습니다. 

    평소 알고리즘을 공부할때 이걸..어디에 쓴다는걸까? 했던 궁금증이 많이 해결되고, 시간복잡도를 계속 구해봐야하기 떄문에 이해도가 높아집니다.

 

  • 자료구조 파트는 일반적인으로 자료구조에 대한 설명과 그 자료구조에 대한 시간복잡도, 그리고 그 자료구조를 사용해 정렬과 탐색까지 진행됩니다.

    자료구조는 입문자도 쉽게 알아볼 수 있게 되어있고, 시간복잡도를 계산해야하는 중급자도 보기 좋게 되어있습니다.

 

  • 알고리즘 파트는 그동안 배운 시간복잡도와 자료구조를 토대로 정렬과 탐색 등 알고리즘을 학습할수 있습니다.

 

 

이 책에서 좋았던점은 수학을 잘 몰라도 프로그래밍이 가능하면 수학적인 내용을 sudo코드가 아닌 C++로 해석하고 예제를 실행해가면서 이해 할 수 있는 부분과 그림으로 설명이 나름 잘되어있어 2~3번 씩 다시읽으면 많은 부분 도움이 된다는 점입니다.

 

이해안되는 예제를 중단점을 찍어 값을 확인했다.

그러나 수학책 같은느낌을 지울수는 없기에 읽기에 많은 어려움을 느꼈고, 연습문제는 풀이나 답이 나와있지않아 완전 처음 접해보는 사람에게는 난이도가 좀 있습니다.

 

-> 수학에 관해 증명하거나 그런부분은 없기때문에 그냥 수식이라면 치를 떠는 사람이 여러번 정독해 수학책을 읽는 연습을 하기에도 좋아보입니다.

 

총평

시간복잡도와 알고리즘이 중점인 책이며,
자료구조를 토대로 이 알고리즘이 어디에 쓰이는지 보고싶은 중급자에게 추천하는 책입니다.

프로그래밍을 할줄알지만 수학을 포기해 수식들만 보면 치를 떠는사람이 알고리즘을 통해 수식과 친해지기에도 좋아보입니다.

 

 

* 이 글은 길벗출판사에게서 제품을 협찬받아 작성되었습니다.

반응형