상세정보

d

d

dd
dd

잠자는 코딩 브레인을 깨우는 알고리즘 퍼즐 69

수학적 사고로 구현하는 프로그래밍의 즐거움

지은이 |   마스이 토시카츠
옮긴이 |   윤인성
발행일 |   2019-02-01
페이지 |   400가격 |   22,000원
ISBN |   978-89-6540-232-9
분야 |   수학, 알고리즘, 프로그래머
dddddd

잠자는 코딩 브레인을 깨우는 알고리즘 퍼즐 69

수학적 사고로 구현하는 프로그래밍의 즐거움

지은이 |   마스이 토시카츠
옮긴이 |   윤인성
발행일 |   2019-02-01
페이지 |   400
가격 |   22,000원
ISBN |   978-89-6540-232-9
분야 |   수학, 알고리즘, 프로그래머
ddd
ddd
69개의 문제로 도전하는 코딩 브레인
배운 대로만 프로그래밍하던 시대는 오래전에 끝났습니다. 계속해서 새로운 문제에 부딪히는 지금, 프로그래머에게 필요한 것은 수학적으로 생각하고 알고리즘으로 구현할 수 있는 능력입니다. 이 책에서는 '정렬이나 탐색 같은 유명한 알고리즘은 이미 공부했다, 더 재미있는 알고리즘을 알고 싶다, 더 발전하고 싶다'는 프로그래머를 위해 퍼즐 형식의 문제를 준비했습니다. 다양한 퍼즐을 통해 문제를 푸는 즐거움도 느끼며 여러분의 코딩 스킬도 향상시켜 보기 바랍니다.


-출판사 리뷰-
이 문제 코딩할 수 있을까?
열쇠는 수학적 사고와 알고리즘
코딩이란 아무것도 없는 상태에서 소스 코드로 새로운 가치를 만드는 것입니다. 물론, 누구나 코딩을 할 수 있습니다. 하지만 효율적으로 더 나은 나만의 코드를 작성하려면, 수학적 사고와 알고리즘이 중요합니다. 프로그래머라면 이들을 공부하기 마련이지만, 한 번쯤 벽에 부딪히곤 합니다.
학창 시절 수학을 공부한 경험을 떠올려 봅시다. 수업 시간에 이론을 배워도 바로 문제를 풀기는 어렵습니다. 수학적 사고를 기반으로 하는 알고리즘 역시 마찬가지입니다. 여러 가지 문제를 풀어 보며 연습해야 실전에 활용할 수 있습니다.
이 책은 바로 프로그래밍에 필요한 수학적 사고와 알고리즘을 퍼즐을 풀어가며 자연스럽게 익힐 수 있게 되어 있습니다. 한붓그리기나 조합 등의 단골 문제부터 '산타클로스가 효율적으로 집을 도는 방법은?', '커플을 이웃하지 않게 앉히는 방법은?'과 같이 재미있으면서도 사고를 확장할 수 있는 문제 69개를 제공합니다.
더 나은 프로그래머로 성장하고 싶다면 이 책의 문제에 도전해 보세요!


이 책의 특징
- 다양한 퍼즐 문제를 소스 코드로 구현한다.
- 4명의 등장인물을 통해 쉽게 설명한다.
- 문제 해결에 필요한 알고리즘을 더욱 깊이 이해할 수 있다.
- 퍼즐도 즐기고 프로그래밍 실력도 향상시킬 수 있다.


파이썬과 자바스크립트 풀이 코드 수록
이 책에서는 파이썬과 자바스크립트로 문제를 푸는 코드를 구현했지만, '생각하는 방법'이 중심이므로 어떤 언어로도 응용할 수 있습니다. 따라서 문제를 푸는 데 반드시 특정 언어를 사용할 필요는 없습니다.


역자의 동영상 강의
이러한 퍼즐 문제를 처음 풀어 보는 분들에게 조금이라도 도움이 되도록 역자의 다음 유튜브 채널에서 문제 몇 개를 함께 풀어 볼 예정이니 참고하기 바랍니다.
[URL] https://www.youtube.com/c/윤인성
옮긴이의 글
들어가며
이 책의 개요
등장인물 소개
예제 파일 내려받기


제0장 프롤로그 - 퍼즐 문제를 푸는 요령
고전적인 문제 살펴보기
예제 1 메모화와 동적 계획법
예제 2 순열과 조합


제1장 입문편 - 문제 그대로 구현하며 감각 익히기
여러 가지 해결 방법 생각해 보기
Q01 한 번에 결정하는 다수결 "가위 바위 보"
Q02 서울 지하철 2호선 스탬프 투어
Q03 로마 숫자 변환 규칙
Q04 불이 켜진 세그먼트 개수로 예측해 보는 디지털 시계
Q05 파스칼의 삼각형과 동전의 개수
Q06 직사각형을 정사각형으로 나누기
Q07 문서 순서를 원래대로 되돌리기
Q08 셀 병합하여 한붓그리기
Q09 나르시스트 8진수
Q10 올림픽 개최 도시 투표
Q11 원주율과 가까운 분수
Q12 카드 순서 바꾸기
Q13 현지에서 사용하기 쉽게 환전하기
Q14 너비 우선 이진 트리를 깊이 우선 탐색하기
Q15 기약 분수가 몇 개 있을까?


제2장 초급편 - 메모화 등으로 처리 시간 단축하기
퍼즐 문제가 일반적인 소프트웨어 개발에 도움이 될까?
Q16 그룹으로 타는 리프트
Q17 비상계단에서 탈출하는 패턴
Q18 균형 잡힌 커튼 갈고리
Q19 술에 취한 귀갓길
Q20 책을 읽는 방법의 가짓수
Q21 100칸 계산에서 최솟값 찾기
Q22 세미나 좌석 정렬하기
Q23 예약으로 꽉 찬 지정석
Q24 좌우 대칭 이진 탐색 트리
Q25 횟수 지정 "가위 바위 보"
Q26 대가족 초콜릿 나누기
Q27 퍼팅 골프 코스 설계하기
Q28 공평하게 케이크 자르기
Q29 서로 뺏는 카드 게임
Q30 정렬되지 않는 카드
Q31 승객들의 매너가 너무 좋은 지하철
Q32 화이트데이 답례
Q33 왼쪽으로 오른쪽으로 오고 가기
Q34 영리한 총무의 돈 걷는 방법
Q35 위 아래 왼쪽 오른쪽을 반전한 문자
Q36 다이얼 자물쇠 해제하기
Q37 모든 사람이 함께 움직이는 자리바꿈


제3장 중급편 - 수학적인 방법으로 구현하기
작은 규모로 생각해 보며 규칙성 찾기
Q38 이웃하면 사라지는 색깔
Q39 가라앉는 섬에서 만나는 배
Q40 윈도우 시작 메뉴 타일 정렬하기
Q41 엄청나게 바쁜 산타클로스
Q42 붙어서 앉을 수 없는 커플
Q43 3진법이라면 어떻게 될까?
Q44 한붓그리기와 교차점
Q45 한 획으로 돌기
Q46 압축할 수 있는 패턴의 가짓수
Q47 균등하게 분배하는 카드
Q48 번호 대응표로 만드는 그룹
Q49 전투력을 기반으로 생각해 보는 몬스터 조합
Q50 연속하는 자리 숫자로 만드는 제곱수
Q51 마트료시카 인형을 한 줄로 정렬하기
Q52 무게가 소수인 짐을 운반하는 엘리베이터
Q53 소수로 만드는 천칭
Q54 십자 모양으로 반전해서 색칠하기
Q55 횟수 지정 "가위 바위 보" #2
Q56 급행 정차역과 특급 정차역 패턴
Q57 폴란드 표기법과 불필요한 괄호
Q58 빼앗기면 되찾아 오기
Q59 삼목 게임


제4장 고급편 - 복잡한 처리를 정확하게 구현하기
라이브러리 살펴보기
Q60 번갈아 가며 줄 세우기
Q61 고장 난 집게 건조대
Q62 영원히 이어지는 당구
Q63 최단 거리로 왕복하는 방법
Q64 n-Queen으로 반전하기
Q65 득표 수가 정수 배가 되는 경우
Q66 미로의 최장 경로
Q67 Base64 반전하기
Q68 파일 수가 다른 폴더 구성하기
Q69 다른 사람과 같은 물건 고르지 않기


찾아보기
저자
마스이 토시카츠(增井敏克)
마스이 기술사사무소 대표. 기술사(정보공학부문)이며, IT 엔지니어를 위한 실무기술 평가서비스 CodeIQ(codeiq.jp)에서 알고리즘이나 정보 보안에 관한 문제를 다수 출제하고 있다. 또한, 비즈니스 수학 검정 1급에 합격하여 공익재단법인 일본 수학검정협회 인정 트레이너로도 활동 중이다. 비즈니스, 수학, IT를 조합하여 컴퓨터를 '올바르게', '효율적으로' 사용하기 위한 기술 향상 지원과 각종 소프트웨어의 개발, 데이터 분석 등에 매진하고 있다.
저서로는 ≪프로그래머의 뇌를 단련하는 수학 퍼즐≫, ≪집에서 배우는 보안의 기술≫, ≪엔지니어로 살아남기 위한 기술 수업≫, ≪프로그래밍 언어 도감≫ 등이 있다.


역자
윤인성
출근하는 게 싫어서 책을 집필/번역하기 시작했다. 일본어는 픽시브에서 웹 코믹을 읽다가 배웠다고 전해진다. 현재 직업 특성상 집에서 나갈 이유가 별로 없다는 것에 굉장히 만족하는 성격이기도 하다. 홍차와 커피를 좋아하며 요리, 음악, 그림, 스컬핑 등이 취미다.
≪모던 웹을 위한 JavaScript+jQuery 입문≫, ≪모던 웹을 위한 Node.js 프로그래밍≫, ≪Hello Coding 파이썬≫(이상 한빛미디어) 등을 저술하였으며, ≪머신러닝 딥러닝 바로가기≫, ≪아마존 웹 서비스 패턴별 구축·운용 가이드≫, ≪Electron 애플리케이션 개발≫(이상 프리렉), ≪파이썬을 이용한 머신러닝, 딥러닝 실전 개발 입문≫, ≪최신 표준 HTML+CSS 디자인≫(이상 위키북스), ≪실전 게임 제작으로 배우는 언리얼 엔진 4≫, ≪데이터 분석을 위한 SQL 레시피≫(이상 한빛미디어), ≪소셜 코딩으로 이끄는 GitHub 실천 기술≫(제이펍) 등을 번역했다.

69개의 문제로 도전하는 코딩 브레인
배운 대로만 프로그래밍하던 시대는 오래전에 끝났습니다. 계속해서 새로운 문제에 부딪히는 지금, 프로그래머에게 필요한 것은 수학적으로 생각하고 알고리즘으로 구현할 수 있는 능력입니다. 이 책에서는 '정렬이나 탐색 같은 유명한 알고리즘은 이미 공부했다, 더 재미있는 알고리즘을 알고 싶다, 더 발전하고 싶다'는 프로그래머를 위해 퍼즐 형식의 문제를 준비했습니다. 다양한 퍼즐을 통해 문제를 푸는 즐거움도 느끼며 여러분의 코딩 스킬도 향상시켜 보기 바랍니다.


-출판사 리뷰-
이 문제 코딩할 수 있을까?
열쇠는 수학적 사고와 알고리즘
코딩이란 아무것도 없는 상태에서 소스 코드로 새로운 가치를 만드는 것입니다. 물론, 누구나 코딩을 할 수 있습니다. 하지만 효율적으로 더 나은 나만의 코드를 작성하려면, 수학적 사고와 알고리즘이 중요합니다. 프로그래머라면 이들을 공부하기 마련이지만, 한 번쯤 벽에 부딪히곤 합니다.
학창 시절 수학을 공부한 경험을 떠올려 봅시다. 수업 시간에 이론을 배워도 바로 문제를 풀기는 어렵습니다. 수학적 사고를 기반으로 하는 알고리즘 역시 마찬가지입니다. 여러 가지 문제를 풀어 보며 연습해야 실전에 활용할 수 있습니다.
이 책은 바로 프로그래밍에 필요한 수학적 사고와 알고리즘을 퍼즐을 풀어가며 자연스럽게 익힐 수 있게 되어 있습니다. 한붓그리기나 조합 등의 단골 문제부터 '산타클로스가 효율적으로 집을 도는 방법은?', '커플을 이웃하지 않게 앉히는 방법은?'과 같이 재미있으면서도 사고를 확장할 수 있는 문제 69개를 제공합니다.
더 나은 프로그래머로 성장하고 싶다면 이 책의 문제에 도전해 보세요!


이 책의 특징
- 다양한 퍼즐 문제를 소스 코드로 구현한다.
- 4명의 등장인물을 통해 쉽게 설명한다.
- 문제 해결에 필요한 알고리즘을 더욱 깊이 이해할 수 있다.
- 퍼즐도 즐기고 프로그래밍 실력도 향상시킬 수 있다.


파이썬과 자바스크립트 풀이 코드 수록
이 책에서는 파이썬과 자바스크립트로 문제를 푸는 코드를 구현했지만, '생각하는 방법'이 중심이므로 어떤 언어로도 응용할 수 있습니다. 따라서 문제를 푸는 데 반드시 특정 언어를 사용할 필요는 없습니다.


역자의 동영상 강의
이러한 퍼즐 문제를 처음 풀어 보는 분들에게 조금이라도 도움이 되도록 역자의 다음 유튜브 채널에서 문제 몇 개를 함께 풀어 볼 예정이니 참고하기 바랍니다.
[URL] https://www.youtube.com/c/윤인성