알고리즘 쉽게 이해하는데 좋은 책 추천

안희수·2021년 4월 7일
0

자료구조 와 알고리즘에 대한 기존의 생각

대기업 개발자 입사할 때 코딩 테스트를 보기 위해서 보려는 경우가 많다
자료구조를 알고자 한다면 정보처리기사 공부를 하게 되면 당연히 알게 된다
다만 비전공자는 쉽게 진입하기 힘든게 사실이다
이전에 본인은 현업 개발자로 있으면서 자료구조를 한번도 보지 않았다

Why?

자료구조는 어찌보면 자료 검색과 입력 삭제와 같은 기능을
효율적으로 하기 위해 기본적으로 알아야 하는 구조인데
중소기업 개발사들은 DB에서 쿼리를 통해서
값을 조회하고 (SELECT) DB에
입력(INSERT) 수정(UPDATE) 삭제(DELETE)
하는게 전부였다

자료구조를 고민하기 보다는 어떻게 입력을 받을까
어떤 쿼리를 짜야 보다 빨리 데이터를 가져올 수 있을까
조인문(LEFT JOIN) 이런 것에만 신경을 쓰고 있었다


자료구조를 공부해 보면서 느낀점

자료 구조를 공부하다 보면 공통적으로 나오는 내용이 있다
시간 복잡도 와 빅오 (O)의 개념
비전공자들에게 만약 자료구조라 무엇이냐 설명하자면
원론적으로 설명하자면 최선 최악 평균 케이스를 고려해서
최적의 검색을 할 수 있는 자료구조를 선택하는 것 이라 할 수 있겠지만

쉽게 설명 하자면 카드 게임이라고 설명해 주고 싶다


1. 내게 주어진 몇 장의 카드가 섞여 있고 카드를 먼저 나열한다


2. 최초 시작이 되는 기준이 될 카드를 하나 먼저 정한다


3. 카드를 비교하면서 더 큰것을 오른쪽으로 위치를 바꾼다


자료구조에 입각하여 프로그램을 구현하는 것이 알고리즘이다
알고리즘 테스트란 주어진 환경에 어떤 알고리즘이 더 효율적인가
선택해서 자료를 검색하고 찾거나 데이터를 추가 삭제 하는 일련의 과정을 말한다


추천하고자 하는 책

사실 코딩 테스트 공부를 위해서 찾아본 것은 맞지만
코딩 테스트는 솔직히 엄두가 나지 않는다

그래서 비전공자이기도 하고 개발자가 아닌 시점으로
최대한 쉬운 책부터 시작하려고 도서관에서 책을 찾다가 발견한 책이 있다

누구나 자료구조와 알고리즘
책 광고하는 기분이 들어 누가 지었고 어느 출판사에서 나온 것인지
설명하지는 않겠다
다만 추천하고자 하는 이유는 분명히 있다

Why?


1. 비전공자도 쉽게 쓰여져 있다


2. 실제 구현된 예제 코드를 수록했다
(자바 스크립트,루비,파이썬) 그러나 추천의 본래의 이유는 아니다


3. 카드 바꾸기 같은 그림을 통해 단계별 자료의 이동과정을
하나 하나 설명해 놓았다 (이게 주된 이유)


상기에 설명해 놓았지만 정렬이나 검색에 대해 설명할 때 제일 좋은 예시가 카드 게임이 아닐까 싶다

사실 본인은 게임 특히나 머리쓰는 카드게임 종류에 매우 약하다
트럼프는 물론이고 그 흔한 우노나 원카드도 잘 하질 못한다
그런데 유일하게 할 수 있는 카드게임이 있는데
카드 뒤집기 게임이다

여러 장의 카드가 덮어져 있고
카드들은 복수의 같은 그림을 가진 카드가 섞여 있다
게이머는 카드를 두장만 뒤집을 수 있고
같은 그림의 카드를 고르게 되면 해당 카드들은 게임에서 제외되고
아닌 경우 두장을 다시 원래 위치에 뒤집어 놓는다
여기에서도 알고리즘이 적용된다고 볼 수 있다

1. 두 장의 카드를 선택한다


2. 두 장의 카드를 비교한다


3. 원하는 결과가 나오면 대상에서 제외하고 반복한다


해당 책에는 이러한 내용이
마치 카드 뒤집기 게임을 하듯 상세하게 나와 있어서
머릿속으로만 막연하게 알고리즘을 생각하는 것에서
명료하게 이해를 할 수 있다 그러한 의미에서 이 책을 공유하고 싶다

profile
9년차 소프트웨어 개발자 (2024년 재 개편 예정입니다)

0개의 댓글

관련 채용 정보