이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
가장 쉬운 독학 알고리즘 첫걸음 파이썬편
코딩 테스트에 대비하는 25가지 기초 알고리즘과 최적화
베스트
컴퓨터 공학 top100 1주
가격
23,500
10 21,150
YES포인트?
1,170원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능
  •  최저가 보상
  •  문화비소득공제 신청가능

이 상품의 태그

상세 이미지

책소개

목차

1장 파이썬의 기본 및 자료구조 알아보기

1.1 프로그래밍 언어 선택
1.1.1 목적에 따라 프로그래밍 언어 선택하기
1.1.2 파이썬을 선택하는 이유
1.1.3 프로그램 실행 방식의 차이 알아보기
1.2 파이썬 개요
1.2.1 파이썬의 특징
1.2.2 파이썬 실행하기
1.2.3 대화형 모드로 파이썬 사용
1.2.4 스크립트 파일로 저장
1.2.5 문자 인코딩에 주의하기
1.2.6 주석
1.3 사칙 연산과 우선순위
1.3.1 파이썬의 기본 계산
1.3.2 소수 계산
1.3.3 자료형 확인
1.4 변수, 대입, 리스트, 튜플
1.4.1 변수
1.4.2 대입
1.4.3 리스트
1.4.4 튜플
1.5 문자와 문자열
1.5.1 문자와 문자열 다루기
1.5.2 문자열 연결
1.6 조건 분기와 반복
1.6.1 조건 분기
1.6.2 긴 줄의 작성 방법
1.6.3 반복
1.7 리스트 내포
1.7.1 리스트 생성
1.7.2 조건을 지정해 리스트 생성
1.8 함수와 클래스
1.8.1 함수 작성
1.8.2 값에 의한 전달과 참조에 의한 전달
1.8.3 변수의 유효 범위
1.8.4 객체 지향과 클래스

2장 기본적인 프로그램 작성하기

2.1 순서도 그리기
2.1.1 처리의 흐름 표현하기
2.1.2 자주 쓰이는 기호 배우기
2.1.3 간단한 순서도 그리기
2.2 FizzBuzz 구현하기
2.2.1 코딩 테스트에 자주 나오는 문제
2.2.2 3의 배수일 때 ‘Fizz’ 출력
2.2.3 5의 배수일 때 ‘Buzz’ 출력
2.2.4 3과 5의 공배수일 때 ‘FizzBuzz’ 출력
2.3 자판기에서 거스름돈 계산하기
2.3.1 거스름돈의 매수를 최소화하려면?
2.3.2 거스름돈 계산
2.3.3 리스트와 반복문으로 프로그램을 간단하게 만들기
2.3.4 잘못된 입력에 대응하기
2.4 기수 변환
2.4.1 10진수와 2진수
2.4.2 10진수를 2진수로 변환
2.4.3 2진수를 10진수로 변환
2.5 소수 판정하기
2.5.1 소수를 구하는 방법
2.5.2 소수인지 알아보는 프로그램 만들기
2.5.3 빠르게 소수를 구하는 방법 고려하기
2.6 피보나치 수열 만들기
2.6.1 피보나치 수열이란?
2.6.2 피보나치 수열을 프로그램으로 구하기
2.6.3 메모이제이션으로 처리 속도 향상시키기

3장 복잡도 학습하기

3.1 계산 비용, 실행 시간, 시간 복잡도
3.1.1 좋은 알고리즘이란?
3.1.2 프로그램을 작성해 처리 시간 측정하기
3.1.3 알고리즘의 성능을 평가하는 복잡도
3.1.4 FizzBuzz 복잡도 알아보기
3.1.5 곱셈 복잡도 알아보기
3.1.6 부피를 구하는 복잡도 알아보기
3.1.7 복잡도 비교하기
3.1.8 최악 시간 복잡도와 평균 시간 복잡도
3.2 자료구조에 따른 복잡도 차이
3.2.1 연결 리스트의 개념
3.2.2 연결 리스트 삽입하기
3.2.3 연결 리스트 삭제하기
3.2.4 연결 리스트 읽기
3.2.5 리스트와 연결 리스트의 구분
3.3 알고리즘 복잡도와 문제 복잡도
3.3.1 복잡도 클래스
3.3.2 지수 시간 알고리즘
3.3.3 계승을 계산하는 알고리즘
3.3.4 어려운 P ≠ NP 예상

4장 다양한 검색 방법 배우기

4.1 선형 검색
4.1.1 일상에서의 검색
4.1.2 프로그래밍의 검색
4.1.3 선형 검색 함수 정의하기
4.2 이진 검색
4.2.1 검색 범위를 반으로 나누기
4.2.2 데이터 증가 시 비교 횟수 고려하기
4.3 트리 구조 탐색
4.3.1 계층 구조 데이터의 검색 고려하기
4.3.2 너비 우선 탐색 구현하기
4.3.3 깊이 우선 탐색 구현하기
4.4 다양한 예제 구현하기
4.4.1 미로 탐험(보초병) 문제
4.4.2 8퀸 문제
4.4.3 n퀸 문제
4.4.4 하노이의 탑
4.4.5 폴더에서 다른 폴더나 파일 찾기
4.4.6 틱택토

5장 데이터 정렬에 걸리는 시간 비교하기

5.1 일상생활에서의 정렬
5.1.1 정렬이 필요한 상황
5.1.2 정렬 알고리즘을 배우는 이유
5.2 선택 정렬
5.2.1 작은 요소 고르기
5.2.2 선택 정렬의 구현
5.2.3 선택 정렬의 복잡도
5.3 삽입 정렬
5.3.1 정렬된 리스트에 데이터 추가하기
5.3.2 뒤에서부터 데이터 이동하기
5.3.3 삽입 정렬 구현하기
5.3.4 삽입 정렬의 복잡도
5.4 버블 정렬
5.4.1 이웃끼리 데이터 교환하기
5.4.2 버블 정렬 구현하기
5.4.3 버블 정렬 개선하기
5.5 힙 정렬
5.5.1 리스트를 효율적으로 사용하는 자료구조 알아보기
5.5.2 마지막에 넣은 데이터부터 꺼내는 스택
5.5.3 스택 구현하기
5.5.4 처음에 넣은 데이터부터 꺼내는 큐
5.5.5 큐 구현하기
5.5.6 트리 구조로 표현하는 힙
5.5.7 힙에 요소 추가하기
5.5.8 힙에서 요소 꺼내기
5.5.9 힙의 구성에 걸리는 시간
5.5.10 힙 정렬 구현하기
5.5.11 범용적인 힙 정렬 구현하기
5.5.12 라이브러리 활용
5.6 병합 정렬
5.6.1 리스트를 분할한 후 병합해 정렬하기
5.6.2 병합 정렬 구현하기
5.6.3 병합 정렬의 복잡도
5.7 퀵 정렬
5.7.1 분할한 각 리스트 안에서 정렬하기
5.7.2 퀵 정렬 구현하기
5.7.3 퀵 정렬의 복잡도
5.8 처리 속도 비교하기
5.8.1 복잡도 비교하기
5.8.2 실제 데이터로 비교하기
5.8.3 안정 정렬

6장 실무에 도움되는 알고리즘 알아보기

6.1 최단 경로 문제
6.1.1 수치화한 비용을 생각하기
6.1.2 모든 경로 조사하기
6.1.3 그래프를 만들어 생각하기
6.2 벨만-포드 알고리즘
6.2.1 변의 가중치에 주목하기
6.2.2 초깃값으로 무한대 설정하기
6.2.3 비용 갱신하기
6.2.4 프로그램 작성하기
6.2.5 벨만-포드 알고리즘에서 주의할 점
6.3 데이크스트라 알고리즘
6.3.1 정점에 주목해 최단 경로 찾기
6.3.2 데이크스트라 알고리즘 구현하기
6.3.3 복잡도를 생각하여 처리 속도 향상하기
6.3.4 힙에 의한 우선순위가 있는 큐 구현하기
6.3.5 데이크스트라 알고리즘에서 주의할 점
6.4 A* 알고리즘
6.4.1 불필요한 경로를 최대한 탐색하지 않기
6.4.2 비용의 추정값 고려하기
6.4.3 A* 알고리즘 구현하기
6.5 완전 탐색 알고리즘
6.5.1 인덱스가 없는 문자열에서 특정 문자열 찾기
6.5.2 일치하는 문자 위치를 앞에서부터 찾기
6.5.3 완전 탐색 알고리즘 구현하기
6.6 보이어-무어 알고리즘
6.6.1 완전 탐색 알고리즘의 문제점
6.6.2 문자열 끝부터 비교해 패턴에 포함되지 않는 문자 건너뛰기
6.6.3 처리 시간 비교하기
6.7 역폴란드 표기법
6.7.1 연산자를 앞에 놓는 폴란드 표기법
6.7.2 연산자를 뒤에 두는 역폴란드 표기법
6.8 유클리드 호제법
6.8.1 최대공약수를 효율적으로 구하기
6.8.2 고급 알고리즘 배우기

부록 A 파이썬 개발 환경 구축하기

A.1 파이썬의 처리 시스템 알아보기
A.2 파이썬 개발 환경 설치하기
A.2.1 윈도우에 설치하는 경우
A.2.2 macOS에 설치하는 경우
A.3 아나콘다로 파이썬 설치하기
A.3.1 윈도우에 설치하는 경우
A.3.2 macOS에 아나콘다 설치하기
A.4 파이썬 가상 환경 만들기
A.5 여러 버전의 파이썬으로 전환하기
A.6 패키지 설치 및 삭제
A.7 파일이나 프로그램을 실행할 때 문제가 발생하는 경우

부록 B 이해도 Check! 정답

저자 소개2

마스이 도시카츠

관심작가 알림신청

ますい·としかつ,增井敏克

테크니컬 엔지니어(네트워크, 정보보안), 기타 정보처리기술자시험에도 다수 합격. 비즈니스 수학 검정 1급에 합격하여 공익재단법인 일본수학검정협회 인증 트레이너로 활동. ‘비즈니스’ × ‘수학’ × ‘IT’를 결합해 컴퓨터를 ‘올바르게’ ‘효율적으로’ 사용하기 위한 스킬업 지원과 각종 소프트웨어를 개발한다. 저서로는 『IT 용어 도감』, 『IT 용어 도감 엔지니어편』, 『프로그래머 두뇌를 단련하는 수학 퍼즐1』, 『프로그래머 두뇌를 단련하는 수학 퍼즐2』, 『프로그래머를 키우는 두뇌 트레이닝 퍼즐』, 『그림으로 배우는 보안 구조』, 『그림으로 배우는 프로그래밍 구조』, 『그림으로
테크니컬 엔지니어(네트워크, 정보보안), 기타 정보처리기술자시험에도 다수 합격. 비즈니스 수학 검정 1급에 합격하여 공익재단법인 일본수학검정협회 인증 트레이너로 활동. ‘비즈니스’ × ‘수학’ × ‘IT’를 결합해 컴퓨터를 ‘올바르게’ ‘효율적으로’ 사용하기 위한 스킬업 지원과 각종 소프트웨어를 개발한다. 저서로는 『IT 용어 도감』, 『IT 용어 도감 엔지니어편』, 『프로그래머 두뇌를 단련하는 수학 퍼즐1』, 『프로그래머 두뇌를 단련하는 수학 퍼즐2』, 『프로그래머를 키우는 두뇌 트레이닝 퍼즐』, 『그림으로 배우는 보안 구조』, 『그림으로 배우는 프로그래밍 구조』, 『그림으로 배우는 알고리즘 원리』, 『Python으로 시작하는 알고리즘 입문』(이상 쇼에이샤), 『프로그래밍 언어 도감』, 『IT엔지니어가 열광하는 자동화의 마법』, 『프로그래머를 위한 딥러닝의 원리를 이해하는 수학 입문』(이상 소시무), 『기초부터 배우는 웹 개발 리터러시』(기술평론사), 『Excel로 다시 배우는 수학』(C&R연구소), 『R과 파이썬으로 배우는 통계학 입문』(옴사) 등이 있다.

마스이 도시카츠의 다른 상품

아크몬드

박광수라는 이름보다 ‘아크몬드’라는 필명으로 알려진 블로거이다. 2004년부터 지금까지 최신 Windows 정보를 꾸준히 나누고 있다. 지금까지 7회 Microsoft MVP(Windows 부문)를 수상했으며, Microsoft 365, Azure 등 Microsoft의 최신 기술에 열광한다. 심리학에 관심이 많으며 현재 일본에서 개발자로 일하면서 딥러닝에 많은 관심을 두고 있다. 지은 책으로는 『진짜 쓰는 윈도우 11』(제이펍, 2023), 『윈도우 10 마스터북』(한빛미디어,2016), 옮긴 책으로는 『스테이블 디퓨전으로 만드는 게임 그래픽』(한빛미디어, 2023), 『처음
박광수라는 이름보다 ‘아크몬드’라는 필명으로 알려진 블로거이다. 2004년부터 지금까지 최신 Windows 정보를 꾸준히 나누고 있다. 지금까지 7회 Microsoft MVP(Windows 부문)를 수상했으며, Microsoft 365, Azure 등 Microsoft의 최신 기술에 열광한다. 심리학에 관심이 많으며 현재 일본에서 개발자로 일하면서 딥러닝에 많은 관심을 두고 있다. 지은 책으로는 『진짜 쓰는 윈도우 11』(제이펍, 2023), 『윈도우 10 마스터북』(한빛미디어,2016), 옮긴 책으로는 『스테이블 디퓨전으로 만드는 게임 그래픽』(한빛미디어, 2023), 『처음 배우는 딥러닝 수학』(한빛미디어, 2018), 『파이썬으로 배우는 머신러닝의 교과서』(한빛미디어, 2018) 등이 있다.

박광수의 다른 상품

품목정보

발행일
2022년 05월 13일
쪽수, 무게, 크기
312쪽 | 586g | 180*245*14mm
ISBN13
9791157688050

출판사 리뷰

‘복잡도’를 중시하는 파이썬 알고리즘 구현 기법을 배운다!

알고리즘을 배우는 이유는 무엇일까요? 현실적인 이유로는 취업 준비가 있을 것입니다. 최근 5~6년 사이 좋은 기업의 개발자 채용 과정에는 꼭 코딩 테스트가 포함되기 때문입니다. 그런데 알고리즘은 취업 목적이 아니더라도 프로그래머의 기초 체력을 기르기 위해 꼭 배워야 하는 것이기도 합니다. 수학 문제를 풀 때 중요 공식을 외워서 사용하는 것과 같이 알고리즘은 여러 가지 문제를 해결하는 기반이 되는 공식과도 같은 것이기 때문입니다.

이 책은 최근 국내에서 가장 주목 받는 프로그래밍 언어인 파이썬을 기반으로 알고리즘을 설명합니다. 그런데 현재 파이썬 알고리즘을 설명하는 책도 여러 권 출간되어 있습니다. 그런데도 이 책을 선택하면 좋은 이유는 무엇일까요? 바로 알고리즘을 공부하는 이유 중 하나인 ‘복잡도’를 강조한다는 점입니다.

여러분이 프로그래머로 살아가기로 마음을 먹었다면 단순히 문법을 조합해서 원하는 결과를 내는 것만으로 만족하면 안 됩니다. 같은 결과를 내더라도 시간이나 속도가 빠른 프로그램을 만들 수 있어야 합니다. 여기에 가장 결정적인 영향을 끼치는 것이 복잡도입니다. 최근 코딩 테스트의 경향도 문제 해결 능력과 함께 성능을 고려한 코드를 작성했을 때 평가가 좋습니다. 이 책과 함께 기본 알고리즘 코드의 학습은 물론이고 복잡도를 고려해 성능이 좋은 코드로 개선하는 방법도 익혀보기를 바랍니다.

이 책의 특징

· 파이썬 기초와 알고리즘의 기초를 1권으로 배울 수 있습니다.
· 예제 코드를 살펴보기 전 알고리즘의 흐름을 이해할 수 있는 순서도를 제시해 설명합니다.
· 각 장에서 배운 내용을 다질 수 있는 ‘이해도 Check!’를 제공합니다.
· 알고리즘의 사용법, 사고방식, 시간 복잡도 사이의 연관성을 이해할 수 있도록 돕습니다.

리뷰/한줄평15

리뷰

10.0 리뷰 총점

한줄평

9.6 한줄평 총점
21,150
1 21,150