확장메뉴
주요메뉴


소득공제
미리보기 공유하기

파이썬으로 익히는 말랑말랑 알고리즘

: 차근차근 설명하고 막힘없이 이해하는 알고리즘

리뷰 총점10.0 리뷰 6건 | 판매지수 468
[IT 기획전] IT, 모두의 교양
박해선 저자의 머신러닝/딥러닝 패스
[단독]『혼자 공부하는 파이썬』 개정판 출간
내일은 개발자! 코딩테스트 대비 도서전
[단독] 에듀윌 IT 자격증 기획전 - 가장 빠른 합격출구 EXIT
소장가치 100% YES24 단독 판매 상품
YES24 트윈링 분철 : 인서트라벨/스티커 택1 증정
쇼핑혜택
현대카드
1 2 3 4 5

품목정보

품목정보
출간일 2022년 01월 28일
쪽수, 무게, 크기 448쪽 | 764g | 173*230*20mm
ISBN13 9791165921064
ISBN10 1165921065

이 상품의 태그

책소개 책소개 보이기/감추기

처음 코딩 테스트를 준비하는 초보자도 어려움없이 배우는 알고리즘 도서!

첫째, 이론과 예제 문제 모두, 초보자를 위해 차근차근! 탄탄하게 알고리즘 이론을 배우고, 제대로 이해했는지 확인할 수 있는 예제 문제가 준비되어 있다. 알고리즘 이론은 대충 이해했는데 예제 문제가 갑자기 어려워져서 책으로 공부하기 힘들었는가? 도서 『파이썬으로 익히는 말랑말랑 알고리즘』은 예제 문제도 초보자들을 위해 첫 단계부터 차근차근 풀어간다. 그동안 알고리즘에 패배감을 느껴왔던 독자분께 이 도서를 추천한다.

둘째, 반복, 반복, 또 반복! 알고리즘이 익숙해질 때까지! 무엇이든 제대로 습득하기 위해선, 반복의 과정이 있어야 한다. 제대로 소화할 때까지 반복하며 단계 별로 차분히 풀어갑니다. 이 과정을 통해 알고리즘을 여러분의 것으로 만들어 가자. 셋째, 계속해서 발전시켜가는 코드 작성법. 첫 술에 배 부르랴! 첫 코드로 속도, 적은 메모리 공간, 깔끔한 변수, 이 모든 것을 고려할 수 없다. 처음엔 투박하게 작성된 코드를 계속해서 다듬고 발전시켜서 멋진 코드로 완성해 가는 거죠! 이 과정을 단계별로 하나하나 전부 담았다. 첫술에 배 부르랴! 여러 번 떠먹으면서 배 부르게 알고리즘을 소화시킬 수 있도록 돕는 도서, 지금 당장 알고리즘을 시작하자!

목차 목차 보이기/감추기

1장. 알고리즘이란?

1.1. 알고리즘을 공부하는 이유
1.2. 알고리즘이 어려운 이유
1.3. 코딩 테스트 준비의 시작
1.4. 코딩 테스트를 보는 이유
1.5. 좋은 알고리즘이란?
1.6. 알고리즘을 잘하는 개발자가 좋은 개발자인가요?
1.7. 이 책의 목표

2장. 아는 것 같지만 떠올리기 어려운 기술들

2.1. 글자 개수만큼 배열 만들기
2.1.1. len()으로 개수 세기
2.1.2. 반복문을 이용해 개수만큼 반복하기
2.1.3. 인덱스로 배열에 접근하기
2.1.4. 인덱스로 배열에 값 넣기
2.1.5. 빈 리스트에 인덱스로 접근하기
2.1.6. 빈 리스트에 값 할당하기
2.1.7. append()로 값 초기화하기
2.1.8. None이 100개 들어 있는 리스트 만들기
2.2. 리스트 안의 숫자 개수 세기
2.3. 자리 바꾸기 swap
2.4. 배열의 인덱스 값 바꾸기
2.5. 중복 제거하기
2.5.1. 셋(Set)이란?
2.5.2. List를 Set으로 바꾸기
2.6. 빈(empty) 리스트([])에서 값을 뽑게 될 때

3장. 입문용 알고리즘

3.1. 짝수, 홀수 구하는 함수 만들기
3.1.1. ‘%’ 연산자로 나머지 구하기
3.1.2. 구한 나머지를 이용해 짝수, 홀수 판단하기
3.2. 배수인지 알아보기
3.2.1. 배수(multiple)란?
3.2.2. ‘%’ 연산자로 나머지 구하기
3.2.3. 배수인지 아닌지 True, False로 나오게 하기
3.3. 자릿수들의 합 구하기
3.3.1. ‘/’ 연산자로 몫 구하기
3.3.2. ‘//’ 연산자로 몫 구하기
3.3.3. 10으로 나누어 보기
3.3.4. 한 번 더 몫과 나머지 구하기
3.3.5. 1의 자리만 있는 숫자를 10으로 나누기
3.3.6. 반복문 넣기
3.3.7. quotient(몫) 변수 빼기
3.3.8. remainder(나머지) 변수 빼기
3.4. 최댓값(max), 최솟값(min) 구하기
3.4.1. 핵심 로직
3.4.2. 반복문으로 숫자 하나씩 확인하기
3.4.3. result 변수 선언하기
3.4.4. 최댓값 교체하는 로직 넣기’
3.4.5. 음수가 주어졌을 때 문제점
3.4.6. 변수 result의 초기값 설정
3.4.7. 불필요한 연산 제거
3.4.8. 최댓값이 들어있는 인덱스(Index) 출력하기
3.4.9. Index를 리턴하도록 로직 변경하기
3.4.10. Index에 있는 값들 비교
3.4.11. 개선할 부분
3.4.12. 최솟값 구하기

4장. 무차별 대입법[Brute Force]

4.1. 통장 비밀번호 풀기
4.2. 통장 비밀번호 푸는 알고리즘 개발하기
4.3. 핵심 로직
4.3.1. 0000부터 0009까지(0 0 0 h)
4.3.2. 0000부터 0099까지(0 0 h j)
4.3.3. 0000부터 0999까지(0 h j i)
4.3.4. 0000부터 9999까지(h j i k)
4.3.5. 입력받은 암호와 같으면 return

5장. 스택[Stack]

5.1. 스택(Stack)은 처음부터 있었을까요?
5.1.1. 스택(Stack)을 쓰는 이유
5.1.2. 위 구조의 문제점
5.1.3. 스택(Stack) 연산 사용 방법
5.1.4. 스택(Stack) 구현하기
5.1.5. .pop() 구현하기
5.1.6. 스택이 비었을 때 .pop()의 기능 수정
5.1.7. .empty() 구현하기
5.1.8. .peek() 구현하기
5.2. 괄호 문제 풀기
5.2.1. 괄호 문제 풀기 전에 알아둘 것
5.2.2. 스택(Stack)을 안 쓰고 괄호 풀기
5.2.3. 문자열 빼기
5.2.4. 반복문 적용
5.2.5. 문자열 빼는 로직 붙이기
5.2.6. s의 값 업데이트
5.2.7. breck 적용
5.2.8. 얼마나 반복해야 할까요? - while 적용
5.2.9. .split(‘()’), ‘’.join 적용
5.2.10. 함수로 만들기
5.2.11. 스택(Stack)을 꼭 사용해야 하나요?
5.3. 스택을 이용해 괄호 문제 풀기
5.3.1. 핵심 로직
5.3.2. st.push() 이용하기
5.3.3. Stack1 클래스 파일로 분리하기
5.3.4. .pop()하기
5.3.5. 닫는 괄호 ‘)’부터 나올 때의 처리
5.3.6.. 함수로 만들기
5.3.7. 속도 테스트
5.3.8. 더 빠르게 하는 방법
5.4. {}, []도 있는 경우
5.4.1. 스택을 사용하지 않았을 때 속도 테스트
5.4.2. 정규식을 쓰는 경우 속도가 더 빠를까요?
5.4.3.. 스택으로 구현하기
5.4.4. 스택에서 꺼내는 .pop() 조건
5.4.5. 짝이 맞는 괄호인지 판단하기

6장. 해시[Hash]

6.1. 해시의 탄생
6.2. 해시 구현
6.3. 해시 테이블 구현
6.4. 해시 충돌(Hash Collision)
6.5. 오픈 어드레싱(Open addressing)
6.6. 체이닝(Chaining)
6.7. 완주하지 못한 선수

7장. 소수[Prime]

7.1. 단순하게 구하기
7.1.1. n % I 구하기
7.1.2. 조건문 적용
7.2. 에라토스테네스의 체
7.2.1. 1 지우기
7.2.2. 2의 배수 지우기
7.2.3. 3의 배수 지우기
7.2.4. 4의 배수 지우기
7.2.5. 5의 배수 지우기
7.2.6. 6의 배수 지우기
7.2.7. 7의 배수 지우기
7.3. 에라토스테네스 체 알고리즘 구현하기
7.3.1. 2부터 n까지 숫자가 들어있는 배열 만들기
7.3.2. 배수 반복문 만들기
7.3.3. 뒤에서부터 반복하기
7.3.4. 나누어 떨어지면 지우기
7.3.5. 함수로 만들기
7.3.6. 속도 문제
7.3.7. while문을 이용한 속도 개선
7.4. 숫자를 지우지 않는 에라토스테네스의 체
7.4.1. check 배열 만들기
7.4.2. while문으로 반복하기
7.4.3. ns[i]의 배수를 False로 표시하기
7.4.4. 반복문 시작 숫자를 식(Statement)으로
7.4.5. 체에 친 결과 출력하기
7.4.6. 함수로 만들기, 속도 테스트
7.4.7. 중복으로 처리되는 값들에 대해

8장. 단순 탐색(Simple Search)과 이진 탐색(Binary Search)

8.1. 심플 서치(Simple Search) - 단순 탐색
8.2. 바이너리 서치(Binary Search) - 이진 탐색
8.2.1. 중간값(mid index) 찾기
8.2.2. 중간에 있는 값과 찾고자 하는 값 비교하기
8.2.3. 중간값이 대상값보다 작을 때, 클 때
8.2.4. 찾을 때까지 반복하기
8.2.5. 코드 정리 & 찾는 값이 없을 때
8.2.6. 최종 코드 정리

9장. 정렬[Sort]

9.1. 버블정렬
9.1.1. 대상 배열 선언하고 결과 쓰기
9.1.2. 첫 번째와 두 번째 값 뽑기
9.1.3. 자리 바꾸기
9.1.4. 배열에 적용하기
9.1.5. 4번째 숫자와 비교하기
9.1.6. 변수 대신 인덱스로 변경
9.1.7. for문 적용하기
9.1.8. 배열 크기에 따라 실행 횟수 바뀌게 하기
9.1.9. 중첩 for문 적용하기
9.1.10. 배열에 숫자가 추가되어도 정렬이 잘 되게 하기
9.2. 퀵정렬
9.2.1. 퀵정렬이 빠른 이유
9.2.2. 퀵정렬 구현하기

10장. 재귀[Recursive]

10.1. 1에서 100까지 loop문 안 쓰고 출력하기
10.1.1. 1에서 100까지 loop문으로 반복하기
10.1.2. 파라미터 만들기
10.1.3. 자신을 호출하도록 만들기
10.1.4. 파라미터에 값 넘겨주기
10.1.5. 탈출 조건 넣기
10.1.6. 1씩 커지는 로직 넣기
10.1.7. 정리하기
10.2. 리턴(return) 값이 있는 재귀 - 배열의 모든 값 sum하기
10.2.1. 배열에서 인덱스로 값 뽑아서 더하기
10.2.2. 변수 사용하기
10.2.3. arr.pop() 이용해서 맨 뒤의 값 뽑아내기
10.2.4. pop 한 번 더 사용하기
10.2.5. 재귀 호출하기
10.2.6. 쌓이는 부분 만들기 accu
10.2.7. 탈출 조건 적용하기
10.2.8. accu에 뽑은 값을 더하는 로직
10.2.9. 소스코드 정리하기
10.3. 팩토리얼(Factorial) - 재귀 호출의 과정
10.3.1. 재귀로 팩토리얼 구하기
10.4. 피보나치 수열 만들기
10.4.1. 피보나치 수열의 인덱스
10.4.2. 피보나치 수열 구현하기
10.4.3. 3번째 값을 넣는 부분 반복하기
10.4.4. 연산 반복하기
10.4.5. 한 개의 숫자를 리턴하도록 바꾸기
10.5. 재귀로 피보나치 수열 만들기
10.5.1. return에서 재귀 호출
10.5.2. 탈출 조건 만들기
10.6. 최대공약수 구하기(GCD : Greatest Common Divisor)
10.6.1. gcd(a,a) = a 로직 추가하기
10.6.2. a 〉 b 일 때, gcd(a, b) = gcd(a - b, b) 로직 추가하기
10.6.3. a 〈 b 일 때, gcd(a, b) = gcd(a, b - a) 로직 추가하기

11장. 다이내믹 프로그래밍[Dynamic Programming]

11.1. LCS(Longest Common Subsequence)
11.1.1. LCS 핵심 로직
11.1.2. i = 0일 때 (D와 ABCDCBA 비교)
11.1.3. i = 1일 때 (DC와 ABCDCBA 비교)
11.1.4. i = 2일 때 (DCA와 ABCDCBA 비교)
11.1.5. i = 3일 때 (DCAB와 ABCDCBA 비교)
11.1.6. i = 4일 때 (DCABD와 ABCDCBA 비교)
11.1.7. i = 5일 때 (DCABDC와 ABCDCBA 비교)
11.1.8. 코드로 구현하기
11.1.9 메모(memo) 배열 만들기
11.1.10. 비교할 문자열 하나씩 보기
11.1.11. 비교하면서 메모장에 기록하기
11.2. 최적의 전략(Optimal Strategy) 찾기
11.2.1. 가장 큰 숫자 가지고 오기
11.2.2. 더 좋은 방법 찾아보기
11.2.3. 알고리즘 구현하기
11.2.4. 숫자가 3개 있는 경우
11.2.5. 40을 가지고 오게 된 이유
11.2.6. 2를 가지고 오는 경우
11.2.7. 40을 가지고 오는 경우
11.2.8. 7, 40, 19에서 최적의 선택은?
11.2.9. 2, 7, 40, 19에서 최적의 선택은?
11.2.10. 2, 7, 40, 4, 9에서 최적의 선택은?
11.2.11. dp[1][3] 구하기
11.2.12. 식으로 j = 2, j = 3일 때 결과 구하기
11.2.13. 숫자를 4개 사용하는 경우
11.2.14. 코드로 구현하기
11.2.15. 함수 선언하고 n 구하기
11.2.16. 4 x 4의 표 만들기(dp)
11.2.17. 숫자가 1개만 있는 경우
11.2.18. 숫자가 3개 이상인 경우
11.3. 최소 비용 경로(Min Cost Path)
11.3.1. 최소 비용 어떻게 구할까요?
11.3.2. 단계별로 기록하기
11.3.3. 코드로 최소 비용 알고리즘 구현하기
11.3.4. 첫 번째 칸에 표시하는 로직
11.3.5. 첫 번째 줄에 표시하는 로직
11.3.6. j = 0일 때 처리하기
11.3.7. I 〉 0 and j 〉 0일 때 처리하기

저자 소개 (1명)

출판사 리뷰 출판사 리뷰 보이기/감추기

알고리즘이 매번 새롭게 느껴진다면?
슬기로운 코딩 생활을 위한 기본서를 소개합니다.


매번 공부할 때마다 새롭게 느껴지는 알고리즘. 우리 머리가 나쁜 걸까요? 아니요, 전혀 그렇지 않습니다. 알고리즘은 이해하고 풀어보고 코드를 좀 더 발전시키는 과정을 계속해서 반복해야 합니다. 그 반복의 시간이 지났을 때, 여러분은 더 이상 알고리즘이 낯설게 느껴지지 않는 것을 경험할 것입니다. 그동안 코딩 테스트를 준비해야 하지만, 엄두조차 내지 못하셨다고요? 그런 여러분과 알고리즘을 이해하고 문제를 풀고, 코드를 발전시키는 이 반복의 과정을 함께 하고자 도서를 제작했습니다. 지금 파이썬으로 익히는 말랑말랑 알고리즘으로 여러분의 슬기로운 코딩 생활을 만들어 가세요.

회원리뷰 (6건) 리뷰 총점10.0

혜택 및 유의사항?
파이썬으로 배우는 말랑말랑 알고리즘 내용 평점5점   편집/디자인 평점5점 꿈* | 2022.02.27 | 추천0 | 댓글0 리뷰제목
아마 IT회사 취업을 목표로 하는 사람이라면 누구든 코딩 테스트에 대한 준비를 할 것이다. 흔히 네카라쿠배 라고 하는 상위 IT기업들만 하더라도 입사를 위해서는 코딩테스트나 코딩 과제를 제출해야하고, 이를 준비하는 교육 과정과 책들이 시중에도 많이 나와있다. IT 게시판같은 것을 살펴보면 이 코딩테스트의 필요성에 대해서 의견을 주고받는 내용들이 있는데, 코딩테스트에서 다;
리뷰제목

아마 IT회사 취업을 목표로 하는 사람이라면 누구든 코딩 테스트에 대한 준비를 할 것이다. 흔히 네카라쿠배 라고 하는 상위 IT기업들만 하더라도 입사를 위해서는 코딩테스트나 코딩 과제를 제출해야하고, 이를 준비하는 교육 과정과 책들이 시중에도 많이 나와있다. IT 게시판같은 것을 살펴보면 이 코딩테스트의 필요성에 대해서 의견을 주고받는 내용들이 있는데, 코딩테스트에서 다뤄지는 알고리즘이 실제로도 사용되느냐에 대해서 의견이 분분하지만, 그래도 이런 테스트를 통해서 현업에서 필요한 사람을 뽑을 수 있다는 것에 대해서는 의견이 일치하는 것 같다. 정상적으로 SW를 다루는 학과를 이수했다면 아마 알고리즘이나 자료구조론 수업을 들었을 것이고, 결국 학교에서 배운 내용을 잘 이수한 실력있는 사람이라면 충분히 코딩 테스트를 통과할 수 있는 사람이 되는 것이다. 

솔직하게 고백하자면 나도 이 코딩테스트에 대해서 막연한 불편함을 가지고 있는 사람이다. 나 스스로도 코딩을 잘한다고 생각해본 적이 없고, 코딩테스트에 나오는 문제를 살펴보면 내가 과연 저 문제를 시간안에 풀 수 있을까? 지금 회사에서 시험을 본다면 나는 붙을 수 있을까? 하는 생각을 가끔 해본다. 그래도 실무에서도 이런 능력이 필요하다고 느끼는 상태였고, 나름 자료구조부터 응용된 문제까지 차근차근 설명해주는 책을 찾는 과정에서 이번 책을 선정하게 되었다.

 

파이썬으로 익히는 말랑말랑 알고리즘

 

앞에서 언급했던 것처럼 시중에는 다양한 코딩테스트를 준비할 수 있는 책들이 출판되어 있고, 각각의 책들이 나름의 방향을 가지고 있다. 어떤 책은 진짜 테스트에 나왔던 문제를 바탕으로 문제은행식으로 담아놓은 책들이 있고, 혹은 TopCoder나 ACM-ICPC에 나왔던 문제들을 바탕으로 설명한 책들도 있다. 그리고 또다른 책은 개인의 경험을 바탕으로 초기의 이론부터 이론을 잘 활용할 수 있는 문제를 푸는 방향으로 진행되는 책들도 있는데, 이 책도 어떻게 보면 후자의 방향으로 따라가는 책 중 하나라고 볼 수 있다. 부제로 달려 있는 "차근차근 설명하고 막힘없이 이해하는 알고리즘"이란 내용이 책의 전반적인 내용을 요약한 것이라고 생각하면 좋을 것 같다. 그래서 뭔가 중급자의 입장에서 다양한 문제의 경향을 파악하고자 사람에게는 뭔가 부족해보일 수 있지만, 자료구조부터 처음부터 구현하면서 시험에서 많이 언급되는 문제들을 풀어보고 싶다 하는 입문자에게는 추천할만한 부분들이 담겨 있다. 책에서 다뤄지고 있는 상세 내용 및 문제는 다음과 같다.

  • 스택과 이를 이용한 괄호 문제 풀기
  • 해시
  • 소수구하기와 이를 이용한 에라토스테네스의 체
  • 탐색과 정렬
  • 재귀와 이를 이용한 최대공약수 구하기
  • Dynamic Programming과 이를 이용한 최적 전략 찾기

개인적으로 좋았던 부분은 외부 라이브러리에 의존하지 않고 직접 구현하면서, 딱 이것이 정답이다 하고 답 코드를 제시하는 것이 아니라 답까지 도출되는 과정을 하나씩 밟으면서 내용이 진행되는 점이다. 그래서 그런지 책 자체에 담고 있는 문제나 주제가 여타 알고리즘 관련 책에 비하면 많지 않음에도 책의 분량이 상당한 편이다. 그리고 책의 세부 파트도 결국 답에 해당하는 부분을 하나씩 구현하면서 설명되기 때문에, 문제에 익숙하지 않은 사람은 처음부터 하나씩 구현을 따라해보는 과정을 밟으면서 배울 수 있게 되어 있다. 

나도 회사내에서 SW 역량인증 시험을 준비하는 입장에서 물론 기출문제를 살펴보고 시험의 유형에 익숙해지는 것도 중요하겠지만, 기초부터 살펴보면서 머리속에서 좀 "생각"을 하면서 구현해보는 과정도 필요하다고 생각하며, 그런 측면에서 보면 이 책이 목적에 맞는 책이 아닐까 생각한다.

(참고로 책에서 제공하는 예제 파일은 웹사이트에 공유되어 있지만, 되도록이면 책의 내용을 살펴보면서 직접 해보는 것을 추천한다. 앞에서 언급했다시피 이 책은 답이 딱 주어져서 의미가 있는 책이 아니라 진행 순서대로 구현해보면서 경험을 쌓는데 의의가 있는 책이기 때문이다.)

(해당 포스트에서 소개하고 있는 "파이썬으로 익히는 말랑말랑 알고리즘" 책은 BJ퍼블릭으로부터 제공받았음을 알려드립니다.)

출처: https://talkingaboutme.tistory.com/entry/Book-python-mallangmallang-algorithm [자신에 대한 고찰]

댓글 0 이 리뷰가 도움이 되었나요? 공감 0
[리뷰]파이썬으로 익히는 말랑말랑 알고리즘 내용 평점5점   편집/디자인 평점5점 YES마니아 : 로얄 스타블로거 : 블루스타 하*스 | 2022.02.21 | 추천1 | 댓글0 리뷰제목
      [도서 소개] 처음 코딩 테스트를 준비하는 초보자도 어려움없이 배우는 알고리즘 도서!   첫째, 이론과 예제 문제 모두, 초보자를 위해 차근차근! 탄탄하게 알고리즘 이론을 배우고, 제대로 이해했는지 확인할 수 있는 예제 문제가 준비되어 있다. 알고리즘 이론은 대충 이해했는데 예제 문제가 갑자기 어려워져서 책으로 공부하기 힘들었는가? 도서 『;
리뷰제목

 

 

 

[도서 소개]

처음 코딩 테스트를 준비하는 초보자도 어려움없이 배우는 알고리즘 도서!

 

첫째, 이론과 예제 문제 모두, 초보자를 위해 차근차근! 탄탄하게 알고리즘 이론을 배우고, 제대로 이해했는지 확인할 수 있는 예제 문제가 준비되어 있다. 알고리즘 이론은 대충 이해했는데 예제 문제가 갑자기 어려워져서 책으로 공부하기 힘들었는가? 도서 『파이썬으로 익히는 말랑말랑 알고리즘』은 예제 문제도 초보자들을 위해 첫 단계부터 차근차근 풀어간다. 그동안 알고리즘에 패배감을 느껴왔던 독자분께 이 도서를 추천한다.

 

둘째, 반복, 반복, 또 반복! 알고리즘이 익숙해질 때까지! 무엇이든 제대로 습득하기 위해선, 반복의 과정이 있어야 한다. 제대로 소화할 때까지 반복하며 단계 별로 차분히 풀어갑니다. 이 과정을 통해 알고리즘을 여러분의 것으로 만들어 가자. 셋째, 계속해서 발전시켜가는 코드 작성법. 첫 술에 배 부르랴! 첫 코드로 속도, 적은 메모리 공간, 깔끔한 변수, 이 모든 것을 고려할 수 없다. 처음엔 투박하게 작성된 코드를 계속해서 다듬고 발전시켜서 멋진 코드로 완성해 가는 거죠! 이 과정을 단계별로 하나하나 전부 담았다. 첫술에 배 부르랴! 여러 번 떠먹으면서 배 부르게 알고리즘을 소화시킬 수 있도록 돕는 도서, 지금 당장 알고리즘을 시작하자!

 

[이 책의 특징]

 이 책은 파이썬을 활용할 수 있는 독자들을 대상으로 알고리즘 입문을 돕는 책입니다. 책의 실행 환경은 파이썬3.8 버전입니다. 

 

이책의 구성은 1장부터 3장까지 알고리즘에 대한 기본 개념과 실제로 많이 활용되는 기본 알고리즘 예제와 함께 배울수 있습니다. 그리고 4장부터는 코딩 테스트에서 많이 활용되는 핵심 알고리즘을 하나씩 설명하며 해당 알고리즘의 문제를 풀어 보는 방식으로 진행이 됩니다.

 

[대상 독자]

- 알고리즘이 어려운 독자

- 알고리즘을 어떻게 공부해야 하는지 모르는 독자

 

[서평]

네카라쿠배당토같은 IT회사에 들어 가려면 반드시 거쳐야 하는 것이 있습니다. 바로 코딩 테스트 입니다. 개발을 어느 정도 자신이 있다고 해도 코딩 테스트를 준비 하지 않으면 통과 하기 힘듭니다. 여기 저자 또한 경력으로 이직할때 개발 실력이 자신 있었지만 코딩 테스트를 막상 해보면 경험만으로는 풀기 힘들었다고 합니다. 요즘 코딩 테스트는 단순히 알고리즘만 알고 있다고 풀수 있는 수준이 아닙니다. 최소 2-3가지 알고리즘을 응용해서 풀어야 하는 복합 적인 문제 들이 많이 나오고 있습니다. 그래서 알고리즘 기본 개념을 확실하게 알고 있어야 풀수 있는 문제들이 요즘 나오는 코딩 테스트 경향 입니다.

 

이책에서는 알고리즘을 풀때 어떻게 접근 해야 하는지 자세히 알려주고 있다. 알고리즘의 솔루션을 바로 알려주고 풀이 과정을 설명 하는 것이 아니다. 먼저 단계별로 로직을 만들어 가면서 조금씩 사고를 확장 하면서 코딩하는 과정을 배울수 있다. 알고리즘을 푸는 과정을 하나로만 알려주는게 아니라 다양한 방법으로 접근해서 풀수 있게 도와주고 있어 코딩 테스트에서 문제를 받았는데 처음 본 문제라도 당황 하지 않고 어떻게 접근 하면서 문제를 해결 해야 하는지 알수 있을 것입니다. 

 

코딩 테스트를 준비 하는 사람이라면 이책의 방법대로 따라가다 보면 알고리즘의 기본 지식과 알고리즘적 사고를 익혀서 어떤 코딩 테스트 문제를 만나더라도 해결 할수 있을것이라 생각합니다.

 

 "비제이퍼블릭 리뷰어 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

댓글 0 1명이 이 리뷰를 추천합니다. 공감 1
포토리뷰 파이썬 알고리즘 입문서로^^b 내용 평점5점   편집/디자인 평점5점 h**i | 2022.02.18 | 추천1 | 댓글0 리뷰제목
  예전에 NodeJS로 간단하게 만들 일이 있어 예제가 많은 책을 찾다보니 NodeJS 200제라는 책을 봤었는데, 반갑게도 그 저자분이 쓰신 알고리즘 책이여서 반가웠습니다. 알다시피 요새 IT 개발쪽으로 취업을 하려면 필수 관문중에 하나가 알고리즘 테스트입니다.  시행된지 몇 년이 지나다보니 자연스레 난이도도 조금씩 높아지는거 같고, 알고리즘을 이해 못하면 응용;
리뷰제목


 

예전에 NodeJS로 간단하게 만들 일이 있어 예제가 많은 책을 찾다보니 NodeJS 200제라는
책을 봤었는데, 반갑게도 그 저자분이 쓰신 알고리즘 책이여서 반가웠습니다.

알다시피 요새 IT 개발쪽으로 취업을 하려면 필수 관문중에 하나가 알고리즘 테스트입니다. 
시행된지 몇 년이 지나다보니 자연스레 난이도도 조금씩 높아지는거 같고, 알고리즘을 이해 못하면 응용문제를 풀기도 쉽지도 않은 것 같습니다.

또한 입사뿐만이 아니라 재직자들도 알고리즘 시험을 통해 여러 등급을 취득해야 되는 경우도 있어 중요해지는 것 같습니다. 저 또한 마찬가지 이유로 공부를 해볼까 하다가 리뷰 이벤트를 통해 이 책을 접하게 되었습니다.

요새 알고리즘 테스트에서 파이썬을 많이 도입을 하고, 책들도 파이썬으로 알고리즘을 설명하는데 기본 로직은 어느 언어나 크게 다르지 않기 때문에 파이썬이라고 책을 선택하시는데 고민을 하지 않아도 문제가 없을 것 같습니다.

내용은 파이썬에서 문장, 배열 등 기본을 다루는 연습을 시작으로 간단한 알고리즘을 구현해 보면서 기본기를 익힐 수 있게 내용이 구성되어 있습니다.

설명은 초보자가 이해하는데도 어렵지 않게 설명이 되어 있고, 저자분께서 중간중간 팁으로 표시 해놓은 부분은 꼭 한번 읽어보시면 도움이 될 내용이 담겨 있습니다.


 

책의 목차에도 있지만, 입문용 알고리즘, Brute Force, Stack, Hash, Prime, 
단순/이진 탐색, 정렬, 재귀, 다이나믹 프로그래밍을 다루고 있습니다. 기본적으로 알아야 할 
내용은 다 다루기 때문에 입문용 책으로는 부족함이 없어 보입니다.

물론 심화나 다양한 케이스는 온라인 저지등을 이용하거나 심화 책을 구입하셔서 보는 것도 좋을 듯 합니다. 그리고 저는 직접 코딩보다는 우선 처음은 책을 전체적으로 다 읽어보고 다시 보고 있는데 코드와 실습결과가 책에 같이 나와 있어서 따라하지 않아도 읽기 수월해서 좋았던 것 같습니다.

댓글 0 1명이 이 리뷰를 추천합니다. 공감 1
  •  쿠폰은 결제 시 적용해 주세요.
1   27,000
뒤로 앞으로 맨위로 aniAlarm