컨텐츠상세보기

코드 없는 알고리즘과 데이터 구조 (커버이미지)
코드 없는 알고리즘과 데이터 구조
  • 평점평점점평가없음
  • 저자암스트롱 수베로 (지은이), 류태호 (옮긴이) 
  • 출판사동양북스(동양문고) 
  • 출판일2021-02-10 
보유 1, 대출 0, 예약 0, 누적대출 0, 누적예약 0

책소개

내일 기술 면접에 임한다면 오늘 읽어야 할 알고리즘과 데이터 구조 이야기!
요즘 좋은 IT 회사에 취업할 때 꼭 거쳐야 하는 관문으로 기술 면접과 코딩 테스트가 있습니다. 그런데 두 가지 관문 모두 알고리즘이나 데이터 구조와 관련된 지식을 묻습니다. 왜 그럴까요? 알고리즘과 데이터 구조는 개발자가 효율적인 프로그래밍을 하기 위한 기초 개념입니다. 즉, 회사에서도 알고리즘과 데이터 구조를 잘 아는 사람이 프로그래밍을 잘할 것으로 믿는 것입니다.

이 책은 코드 없이 주요 알고리즘과 데이터 구조를 설명하는 책입니다. 왜 코드 없이 설명할까요? 다음과 같은 장점이 있기 때문입니다.

● 짧은 시간 안에 부담 없이 읽을 수 있습니다. 이미 알고리즘과 데이터 구조를 배운 분이라면 하루 8시간이면 충분합니다.
● 프로그래밍 언어의 문법에 어려움을 느끼지 않고 알고리즘과 데이터 구조의 기초에만 집중할 수 있습니다.
● 컴퓨터 공학을 배우지 않은 비전공자가 알고리즘과 데이터 구조를 부담 없이 익혀볼 수 있습니다.

이 책과 함께 알고리즘과 데이터 구조의 기본을 빠르게 익히기 바랍니다.

프로그래밍 언어와 무관한 알고리즘과 데이터 구조의 기초를 만난다
알고리즘이나 데이터 구조는 컴퓨터 과학 전반에서 광범위하게 적용되는 기반 개념입니다. 효율적인 프로그래밍, 데이터베이스 관리, 운영체제의 동작 제어 등에 필요합니다. 그런데 알고리즘과 데이터 구조를 시험 보듯 달달 외워야만 프로그래밍을 할 수 있는 것은 아닙니다. 그래서 실무에서 일하다 보면 알고리즘과 데이터 구조는 점점 머릿속에서 잊혀 가곤 합니다.

하지만 다양한 개발 환경에 빨리 적응하는 개발자는 알고리즘과 데이터 구조의 기본에 강합니다. 본질적으로 프로그래밍 언어의 종류에 상관없이 기본 수준의 데이터 구조와 알고리즘을 이해하기 때문입니다. 그래서 최근 많은 기업의 채용에서 코딩 테스트나 기술 면접을 도입하고 알고리즘이나 데이터 구조에 관한 지식이 얼마나 탄탄한지 묻곤 합니다.

이 책은 대다수 프로그래밍 언어나 시스템에서 공통으로 다루는 알고리즘과 데이터 구조 개념을 빠르게 살펴보려는 목적으로 썼습니다. 데이터 구조와 알고리즘을 이해하고 싶지만 프로그래밍 언어의 상세한 특징을 알 필요 없이 알고리즘과 데이터 구조를 설명합니다. 정기적으로 서로 다른 프로그래밍 언어를 사용하는 사람, 두꺼운 책을 볼 시간이 없는 사람, 데이터 구조와 알고리즘의 개념을 문장으로 이해하고 싶은 사람은 '코드 없이' 알고리즘과 데이터 구조의 개념을 빠르게 익히기 바랍니다. 사용하는 프로그래밍 언어가 무엇이든 빠르게 효율적인 프로그래밍을 할 수 있을 것입니다.

저자소개

8살 때부터 전자 공학을 학습했고, 프로그래밍과 임베디드 시스템 개발에 흥미를 느끼기 시작했다. 프로그래밍 분야 중 알고리즘과 데이터 구조에 특별한 관심을 갖고 있으며 이를 다양한 프로세서 아키텍처, 특히 자원이 제한된 시스템상에 여러 가지 프로그래밍 언어로 구현하는 것을 즐긴다. 현재 트리니다드 토바고의 국가 안보부에서 근무 중이며, 토머스 에디슨 주립대학에서 컴퓨터 과학 및 인문 예술 과학 학위를 취득했다. 『Programming PIC Microcontrollers with XC8』(Apress, 2018)의 저자다.

목차

Part 1 데이터 구조



1장 데이터 구조와 알고리즘, 자료형, 빅 오 표기법

데이터 구조와 알고리즘 개요

데이터 구조

알고리즘

데이터 구조와 알고리즘의 관계

기본 자료형



문자

정수

부동 소수점 수

함수

함수, 메소드, 프로시저, 서브루틴

재귀와 반복

알고리즘의 세 가지 유형

알고리즘 분석

빅 오 표기법

마치며



2장 선형 데이터 구조

컴퓨터 메모리

선형 데이터 구조의 개요

배열

리스트

스택



우선순위 큐

마치며



3장 트리 데이터 구조

트리

이진 트리

AVL 트리

RB 트리

B 트리



마치며



4장 해시 데이터 구조

해시와 해시 함수

해시 테이블

컴퓨터 보안 기초

암호 시스템

공개 키 암호 시스템

해싱 vs 암호화

컴퓨터 보안에서 해시의 역할

해시와 순환 중복 검사

해시의 다른 용도

마치며



5장 그래프

차원, 점, 선

그래프

그래프 vs 트리

무향 그래프와 유향 그래프

가중치 그래프

그래프와 소셜 네트워크 서비스

그래프 데이터베이스

마치며



Part 2 알고리즘



6장 선형 및 이진 탐색

선형 탐색

선형성

선형 탐색의 원리

이진 탐색

로그

이진 탐색의 원리

마치며



7장 정렬 알고리즘

정렬 알고리즘의 특징

버블 정렬

선택 정렬

삽입 정렬

셸 정렬

병합 정렬

퀵 정렬

힙 정렬

버킷 정렬

기수 정렬

마치며



8장 경로 탐색 알고리즘

너비 우선 탐색

깊이 우선 탐색

데이크스트라 알고리즘

A* 알고리즘

마치며



9장 군집화 알고리즘

K-평균 알고리즘

K-최근접 이웃 알고리즘

머신러닝

신경망

딥러닝

마치며



Part 3 데이터 구조와 알고리즘을 이해하는 데 필요한 지식들



10장 무작위성

무작위

하드웨어 이해하기

회로와 트랜지스터

증폭기, 피드백, 클럭, 오실레이터

논리 게이트

조합 및 순차 논리

혼성 신호 회로, 유도 저항, 노이즈

유사 난수

선형 피드백 시프트 레지스터

참난수 생성기

마치며



11장 스케줄링 알고리즘

운영체제

범용 운영체제

실시간 운영체제

인터럽트와 인터럽트 서비스 루틴

유한 상태 기계

커널, 프로세스, 스레드, 작업

메모리 관리 장치

작업 제어 블록

스케줄러와 스케줄링

선착순 스케줄링

최단 작업 우선 스케줄링

우선순위 스케줄링

라운드 로빈 스케줄링

다단계 큐 스케줄링과 다단계 피드백 큐 스케줄링

마치며



12장 알고리즘 기획과 설계

타당한 기획과 설계의 필요성

알고리즘의 3단계

순서도

순서도 기호

흐름선

단말 기호

입출력 기호

처리 기호

판단 기호

종속 처리 기호

프로그램 구조

순차 구조

if-then 구조

if-then-else 구조

while 반복 구조

do-while 반복 구조

switch-case 구조

선형 탐색 알고리즘의 순서도

유사 코드

마치며



부록 더 나아가기

한줄 서평