메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

게임으로 익히는 코딩 알고리즘

취업, 이직, 승진 준비생들을 위한 알고리즘 기본 + 코딩 테스트 트레이닝 북

한빛미디어

집필서

판매중

  • 저자 : 김영기
  • 출간 : 2019-05-06
  • 페이지 : 320 쪽
  • ISBN : 9791162241615
  • 물류코드 :10161
초급 초중급 중급 중고급 고급
4.6점 (43명)
좋아요 : 237

[개발자 레벨업 프로젝트] 개발자의 취직, 이직, 승진은 코드에 달려 있다!

 

날마다 조금씩 발전하는 자신을 위해 코딩 테스트를 하는 개발자. 

개발사에 취업하려 하나요? 

경력 관리를 위해 이직하려 하나요? 혹은 실력을 검증하고 발전시키고 싶나요?

프로그래밍 언어의 기본 문법은 학습하였지만 막상 코딩을 시작하려니 막막한 입문자, 힘겹게 취직은 했지만 아는 것보다 모르는 것이 더 많은 초보 개발자, 업무를 진행할 때마다 많은 시행착오로 인해 업무 처리가 버거운 개발자라면 꼭 이 책으로 도전해보세요! 

 

누구를 위한 책인가요?

  • 프로그래머 취업 준비생
  • 이직 준비 중인 개발자
  • 실력을 키우고자 하는 개발자 

나의 코드로 나의 레벨을 확인해보자!

어제의 코드와 오늘의 코드는 달라야 합니다. 하지만 하루하루 나아지는 일은 생각보다 쉬운 일이 아닙니다. 그래서 게임 요소가 적용된 코딩게임 플랫폼(www.codingame.com)을 택했습니다. 게임하듯 즐겁게, 코딩 테스트를 할 수 있는 매력적인 플랫폼입니다. 레벨업 하면서 하루하루 나아지는 코드를 확인하며 교과서를 벗어나 살아 숨 쉬는 알고리즘을 만날 수 있습니다. 

친구와 경쟁하고 저자와 경쟁하며 게임을 즐기듯 할 수 있는 코딩 테스트에 도전해보세요!

 

이 책의 특징

  • 탄탄한 학습 설계 : 3단계 난이도별 구분과 문제 분석부터 해결, 5단계 길잡이 풀이법까지 초보자도 따라할 수 있는 탄탄한 구성
  • 이론과 실전의 결합 : 알고리즘 이론서보다 쉬운 설명과 그에 걸맞는 문제가 있어 실전처럼 바로 문제에 활용
  • 사고의 확장 : 문제풀이에서 끝나지 않고, 꼬리에 꼬리를 물고 그이상의 해법을 함께 생각하도록 자극하는 코너(좀 더 생각해 봅시다) 제공
  • 코딩 테스트의 즐거움 : 시각적 재미가 가득한 게임 문제를 통해서 흥미를 잃지 않고 지속할 수 있는 코딩 테스트

 

10161_details.jpg

 

 

저자

김영기

코딩게임 레벨 35 / 닉네임 hard-coded

 

코딩게임의 모든 업적을 다 채우려다보니 평소에 쓰지도 않던 프로그래밍 언어를 공부하는 일이 어느새 새로운 취미가 되었다.

 

한글과컴퓨터에서 개발자의 삶을 시작하며 아래아한글을 개발했다. 그러다 어느 날 게임을 만들겠다며 회사를 뛰쳐나가 (주)블루사이드, 이노스파크, 비주얼 콘셉츠에서 <킹덤 언더 파이어 2>, <드래곤프렌즈>, <히어로스카이>, <NBA 2K> 시리즈 등의 게임을 출시했다. 현재는 캐나다에서 새로운 도전을 위한 공부를 하며 취미로 새로운 언어를 익히고 있다.

 

코딩게임 프로필

PART 01 코딩게임 첫걸음 떼기

1. 알고리즘 시작하기 : 알고리즘은 무엇이고 왜 필요할까?

  1-1 컴퓨터 알고리즘

  1-2 알고리즘은 왜 필요할까?

  1-3 알고리즘은 어떻게 학습할까?

  1-4 알고리즘의 성능은 어떻게 표현할까?

2. 코딩게임 살펴보기 : 게임으로 배우는 알고리즘

  2-1 코딩게임이란?

  2-2 화면 구성 알아보기

  2-3 사용자 정보 보기

  3. THE DESCENT : 반복문으로 가장 높은 산을 파괴하라

  3-1 문제 설명

  3-2 어떻게 풀까요?

  3-3 필요한 알고리즘은?

    조건문

    최댓값 구하기

  3-4 풀어 봅시다

  3-5 더 생각해 봅시다

4. TEMPERATURES : 가장 낮은 절댓값을 찾아라

  4-1 문제 설명

  4-2 어떻게 풀까요?

    절댓값

  4-3 필요한 알고리즘은?

    반복문

    split의 용도

  4-4 풀어 봅시다

  4-5 더 생각해 봅시다

    배열

5. CHUCK NORRIS : 0만 가지고 2진수 표현하기

  5-1 문제 설명

  5-2 어떻게 풀까요?

  5-3 필요한 알고리즘은?

  10진수를 2진수로 변환하기

    인코딩하기

  5-4 풀어 봅시다

  5-5 더 생각해 봅시다

  2진수 변환

    문자열 슬라이스 기능

    비트 시프트 연산

 

PART 02. 문제 속에서 답을 찾는 실전 알고리즘

6. STOCK EXCHANGE LOSSES : 발끝에서 사서 머리에서 팔아라

  6-1 문제 설명

  6-2 어떻게 풀까요?

  6-3 필요한 알고리즘은?

    문제 분석 능력

  6-4 풀어 봅시다

  6-5 더 생각해 봅시다

    코드에 대한 이해도 높이기

    다른 방식으로 접근하기

7. THERE IS NO SPOON : 2차원 배열에서 좌표 찾기

  7-1 문제 설명

  7-2 어떻게 풀까요?

  7-3 필요한 알고리즘은?

    배열

  2차원 배열

    중첩 반복문

  7-4 풀어 봅시다

  7-5 더 생각해 봅시다

  2차원 배열

    시간 복잡도 O(n)

    중첩 반복문

8. WAR : 큐와 스택으로 벌이는 한판 게임

  8-1 문제 설명

  8-2 어떻게 풀까요?

  8-3 필요한 알고리즘은?

    큐

    스택

  8-4 풀어 봅시다

  8-5 더 생각해 봅시다

9. SCRABBLE : 해시맵으로 단어 만들기

  9-1 문제 설명

  9-2 어떻게 풀까요?

  9-3 풀어 봅시다-1

  9-4 필요한 알고리즘은?

    해시맵

  9-5 풀어 봅시다-2

    해시맵 풀이

  9-6 더 생각해 봅시다

    해시의 의미

    해시맵의 제약

10. SHADOWS OF THE KNIGHT : 폭탄의 위치를 찾는 가장 빠른 방법

  10-1 문제 설명

  10-2 어떻게 풀까요?

  10-3 필요한 알고리즘은?

    이진 탐색

    이진 탐색의 시간 복잡도

  10-4 풀어 봅시다

  10-5 더 생각해 봅시다

    M×N 배열에서 시간 복잡도

    이진 탐색의 전제 조건

11. THE GIFT : 돈을 나누는 가장 공평한 방식

  11-1 문제 설명

  11-2 어떻게 풀까요?

  11-3 필요한 알고리즘은?

    탐욕 알고리즘

    탐욕 알고리즘으로 최적의 해 찾기

  11-4 풀어 봅시다

  11-5 더 생각해 봅시다

    무차별 대입법 / 동적 프로그래밍

    외판원 문제

12. DWARFS STANDING ON THE SHOULDERS OF GIANTS : 재귀 함수를 사용해 트리의 높이 구하기

  12-1 문제 설명

  12-2 어떻게 풀까요?

  12-3 필요한 알고리즘은?

    그래프

    너비 우선 탐색과 깊이 우선 탐색

    재귀

  12-4 풀어 봅시다

  12-5 더 생각해 봅시다

    그래프와 트리

    단방향 그래프와 양방향 그래프

13. SKYNET REVOLUTION : I will be back to search

  13-1 문제 설명

  13-2 어떻게 풀까요?

  13-3 필요한 알고리즘은?

    그래프

    너비 우선 탐색

  13-4 풀어 봅시다

  13-5 더 생각해 봅시다

    깊이 우선 탐색과 최단 경로

    노드 간 이동 시간과 최단 거리

 

PART 03. 고급 퀴즈 해결하기

14. TAN NETWORK : 최단 경로를 알려드립니다

  14-1 문제 설명

  14-2 어떻게 풀까요?

  14-3 필요한 알고리즘은?

    다익스트라 알고리즘

  14-4 풀어 봅시다

  14-5 더 생각해 봅시다

    다익스트라 알고리즘 적용이 불가한 경우

    다익스트라 알고리즘의 단점

15. ROLLER COASTER : 최고의 롤러코스터 타이쿤 되기

  15-1 문제 설명

  15-2 어떻게 풀까요?

  15-3 풀어 봅시다-1

  15-4 필요한 알고리즘은?

    원형 큐

    동적 프로그래밍

  15-5 풀어 봅시다-2

  15-6 더 생각해 봅시다

    시간 초과 개선 방법

 

부록 A. 먼저 취업한 선배들의 도움되는 Talk Talk

부록 B. 프로그램 이해에 도움되는 수도코드

"쉽고 재미있는데 유익한 프로그래밍 책이 존재한다고?" _리뷰어 서은택

이 책은 <코딩게임>이라는 프로그래밍 챌린지 사이트의 다양한 문제들을 엄선하여 난이도별로 차례로 설명해 주면서 독자의 실력이 차근차근 늘어가도록 구성되어 있습니다.

책의 구성이 잘 설계되어 있어 최소한의 프로그래밍 기초만 있다면 누구라도 책에서 설명하고 있는 내용을 따라가면서 문제들을 해결하는 기쁨을 맛볼 수 있습니다. 단순한 문제풀이 책이 아니라, 프로그래머라면 꼭 알아야 하는 다양한 자료구조와 알고리즘을 하나씩 차근차근 설명해 주기 때문에 알고리즘 학습을 위한 교재로도 손색이 없습니다. 웬만한 일반 알고리즘 책과 비교해 봐도 더 상세하고 잘 정리된 설명에 다양한 도표, 더불어 그 알고리즘을 직접 적용할 수 있는 문제가 함께 소개되기 때문에, 말하자면 이론과 실전이 제대로 결합되어 학습 효과를 극대화할 수 있는 구성입니다. 거기에 저자가 중간 중간에 넣어 놓은 다양한 읽을거리들은 프로그래밍과 관련한 상식을 키우는 데에도 도움을 줍니다.

<코딩게임> 사이트 또한 매우 흥미롭습니다. 다른 많은 프로그래밍 챌린지 사이트들은 프로그래밍 자체에 초점이 맞추어져 있기 때문에 처음 입문하는 사람들에게 재미를 느끼게 하기 어려운 반면, <코딩게임>은 프로그래밍 결과가 즉각적으로 표시되기에 프로그래밍의 즐거움을 훨씬 더 강하게 느끼게 해 줍니다. 혼자서 문제를 푸는 것뿐만 아니라 다른 사람과 경쟁하기도 하고 심지어는 실시간 프로그래밍 대결도 할 수 있어서 몰입해서 하다 보면 프로그래밍의 즐거움에 ‘중독’되는 진기한 경험도 해볼 수 있습니다. 그래서 이 책과 <코딩게임>을 잘 활용한다면 말 그대로 프로그래밍을 재미있게 배울 수 있다고 확신합니다. 저자가 <코딩게임> 사이트에서 활발히 활동하고 있기 때문에 저자와 직접 대결도 해 볼 수 있다는 것은 또 다른 즐거움이 아닐까요?

 

“실무라는 사막에서 길 잃은 개발자에게 지식과 지혜를 나눠주는 오아시스 같은 책” _리뷰어 최성현

이 책을 총 5번 읽었는데요,

한 번 읽었을 땐 컴퓨터 사이언스의 필수 알고리즘들을 배울 수 있었고,

두 번 읽었을 땐 파이썬이라는 프로그래밍 언어를 이해하게 되었고,

세 번 읽었을 땐 <코딩게임> 사이트에 대한 흥미를 느낄 수 있었고,

네 번 읽었을 땐 개발 경험이 풍부한 작가의 개발 철학을 엿볼 수 있었고,

마지막으로 읽었을 땐 주식은 하면 안 된다는 것을 느낄 수 있었습니다.

(06 STOCK EXCHANGE LOSSES 내용)

실무라는 사막에서 길을 잃은 개발자에게 지식과 지혜를 나눠주는

오아시스 같은 책이라고 단언합니다.

 

“쉽게 따라 하고 재미있게 도전해보면서 알고리즘과 논리적 사고를 키워주는 책” _리뷰어 김수영

개발자가 아니더라도 최근 파이썬 정도는 해야 한다는 분위기가 조성되고 있습니다. 특히 데이터 관련 작업을 하는 팀에서는 필수입니다. 하지만 혼자서 공부를 하다 보면 어느 정도까지 문법은 따라 할 수 있지만, 논리적인 코드를 작성하는 것은 어렵고 흥미를 잃기 쉽습니다. 이 책은 그런 사람들에게 쉽게 따라 하고 재미있게 도전해 보면서 실질적인 알고리즘과 논리적 사고를 키워줍니다. 이와 함께 파이썬 코딩에 대해 꼭 필요한 부분을 잘 짚어주고 있습니다.

 

“기초 알고리즘을 재미있고 쉽게 배울 수 있도록 도와주는 책” _리뷰어 이지호

개발자로서 18년을 일하면서 현장에서 알고리즘에 목마름을 느낄 때가 많았습니다. 아마도 대학 2~3학년 때 짧게 배우고 지나갔던 수학 과목들과 알고리즘을 다시 떠올리기 싫어서였던 것 같습니다. 저와 여러분이 이제 만나기 시작한 『게임으로 익히는 코딩 알고리즘』은 기초 알고리즘을 재미있고 쉽게 배울 수 있도록 도와줄 것입니다. 책을 봄에 있어 시간을 낸다고 생각하지 말고 조금씩 즐겨보세요. 그러다가 닥터 후가 언급되면 지나간 향수를 불러일으킬지도 모릅니다. 닥터 후 글자를 보면 바로 제나 콜먼이 생각날지도 모릅니다.

 

“쉬운 방법부터 최적화까지 스토리로 문제를 해설해주는 책” _리뷰어 문성훈

참 어렵고도 딱딱하기 쉬운 코딩과 알고리즘을 <코딩게임>이라는 사이트의 문제를 통해서 재미있는 소설을 읽는 것처럼 알려주는 점이 좋았습니다. 단순히 문제를 푸는 데 그치지 않고 쉬운 방법부터 최적화까지 스토리로 문제를 해설해 주고, 같이 고민하면서 쉽게 쉽게 읽을 수 있도록 만들어 줍니다. 처음 알고리즘에 입문하거나 알고리즘 사이트에서 아무리 문제를 풀어도 실력이 늘지 않는다고 느끼시는 분들에게 강력 추천해 드립니다.

 

“응용력을 키우고 싶을 때 진입장벽을 낮춰주는 좋은 가이드 북”_리뷰어 한미소

이 책은 코딩의 이론을 마치고 응용을 시작하는 단계에서 ‘<코딩게임>이라는 사이트를 통해 응용력을 키우고 싶다’라고 할 때 이 책이 진입장벽을 낮춰 주는 좋은 가이드 북이 될 것 같습니다. 개인적으로 ‘초급 문제 비중이 더 많았으면 어땠을까’하는 아쉬움은 있습니다. 왜냐면 그래도 초급은 좀 많이 따라 했거든요! 그리고 완료하면서 좀 재미있었습니다. 초급의 다른 문제들도 도전해보려고 합니다. 나중에 초급/중급/고급으로 아예 따로 내주세요.

  • 일단 책 제목이 마음에 들었습니다.

    게임으로 익히는 코딩알고리즘이란 어떤 책일까요.

     

     

     

     

    여러분도 궁금해 하실 것 같아서 리뷰 남깁니다

    https://www.codingame.com

     

    20190909_075626.jpg

     

    20190917_124849.jpg

     

    20190917_124935.jpg

     

    20190917_130152.jpg

     

    20190917_130424.jpg

     

     

    코딩 언어는

    C#

    C++

    Java

    Javascript

    Python3

    Bash

    C

    등 등의 언어를 통해 문제를 풀 수 있습니다.

    전 파이선으로 했습니다.

    재미있게 즐기며 풀면 정말 좋을 것 같아요.

    전 초보라 ....

     

    이지도 어렵네요.

     

  • 아주 재밌게 읽었습니다~

  • IMG_4936.jpg

     

    버블정렬, 퀵정렬, 트리… 알고리즘을 공부하기 위해 검색하면 볼 수 있는 개념들이다.
    우리는 이유도 모른채 이러한 자료구조에 대한 알고리즘을 기계처럼 학습했었다.
    지루한 알고리즘 학습을 게임을 하듯 재밌게 공부할 순 없을까? 
    이 책 ‘게임으로 익히는 코딩 알고리즘’에서는 그걸 가능케하는 방법을 알려준다.
    저자는 직장동료에게 소개 받은 <코딩게임>에서 문제를 풀면서 희열과 쾌감을 얻었고 곧 취미가 되어버렸다고 했다.
    문제를 풀다보면 마치 RPG 게임을 하는 듯한 느낌을 받을 수 있다고 한다.
    코딩게임은 크게 2가지 모드가 있는데 여러 가지 프로그래밍 문제를 온라인상에서 직접 풀어보는 연습모드, 연습모드에서 갈고 닦은 실력을 바탕으로 다른 개발자와 실력을 겨룰 수 있는 경쟁모드가 있다.
    이 책은 연습 모드에 있는 여러 문제 중 엄선한 문제를 풀어보는 방식으로 구성되어 있다.
    코딩게임 사이트 자체가 영어로 되어 있기 때문에 문제를 이해하는 부분에서 막히는 부분들도 있을 것이고 무엇부터 해야할지 감이 안잡힐 수 있기 때문에 이 책을 통해 차근차근 문제 설명부터 어떻게 풀것인지 필요한 알고리즘은 무엇인지 익히다보면 어느새 스스로 많은 문제를 풀 수 있을만한 기본을 갖추게 될 것이다.

    부록으로 먼저 취업한 선배들의 도움되는 토크 편이 있는데 이 내용이 정말 좋다. 기술 인터뷰를 아직 해보지 않은 분들이라면 분명 큰 도움이 될 것이다. 

     

  • 요새 기술 트렌드가 인공지능이라고 많이 표현하고, 회사나 학교에서도 이를 응용한 교육이나 기술을 많이 적용하려고 노력하는 것 같다. 그런데 개인적인 생각으로는 이런 기술도 기본적인 소양이 뒷받침되어야 진정으로 이해하고 나아갈 수 있지 않을까 하는 생각을 많이 해본다. 예를 들어서 행렬연산이나 벡터의 개념없이는 신경망이 연산하고, 학습되는 과정을 이해하기 어려울 것이고, 기본 자료구조나 알고리즘에 대한 이해없이는 그런 동작 과정을 개선시키거나, 이해하는 것 자체가 벅찰 것이다. 사실 나같은 경우도 현업에서 인공지능 관련 기술을 실제 환경에 적용하는 일을 하고 있긴 하지만, 그런 과정이 쉽지 않을 뿐더러 너무나 논리적으로 설명하기 어려운 부분이 많다는 것을 많이 느낀다. 그래서 그냥 시간나는 틈틈히 알고리즘 공부나 수학공부를 해보고 있다. 이번에 소개할 책은 알고리즘을 조금 손쉽고 이해하기 쉽게 공부할 수 있는 방법을 소개한 책이다.

     

    그림 1. 게임으로 익히는 코딩 알고리즘

     

     보통 게임이라고 하면, 휴식시간에 즐기면서 스트레스를 푸는 용도로 생각이 많이 들겠지만, 최근에는 게임을 교육에 활용한 케이스들이 많이 소개되고 있다. 이 책 역시 게임을 교육에 활용한 케이스 중 하나인데, 그 중 알고리즘을 직접 구현해보면서 게임을 즐기는 형식으로 되어 있다. 책에서 베이스로 삼고 있는 사이트는 codinGame이라는 사이트이다.

     

     

    Coding Games and Programming Challenges to Code Better

    CodinGame is a challenge-based training platform for programmers where you can improve your coding skills with fun exercises (25+ languages supported)

    www.codingame.com

     사실 나도 처음 이 사이트를 접하면서도 "에이, 게임으로 알고리즘을 배우는 것에도 한계가 있겠지.." 하는 회의감이 들었었다. 물론 많은 사람들이 실제로 게임을 학습에 적용해본 케이스를 많이 봐 왔지만, 실제로 게임의 질이나 학습의 질이나 어느 하나도 충실하지 못해 몰입감을 제공하지 못한 경우를 주로 접했었던 것 같다. 그런데 이 사이트는 뭔가 조금 달랐다. 아래의 영상은 실제 codinGame에서 학습을 하면서 게임을 하는 예시이다.

    영상 1. What is CodinGame?

     영상을 보면 알겠지만 게임 내의 캐릭터를 실제 코드를 통해서 제어할 수 있고, 실제 코딩을 통해 게임에서 이기는 것을 목적으로 하고 있다. 그리고 각 학습자별 레벨과 퀘스트라는 개념이 들어가 있어서 뭔가 학습을 마치고 게임에서 이길때마다 경험치를 얻고 레벨 업 하는 과정을 직접 느낄 수 있다. 이를 통해서 학습자에게 성취감을 부여해준다. 무엇보다도 구현되어 있는 게임과 알고리즘 구현과의 연관성이 충실해서 실제 구현하면서 뭔가 배울 수 있겠다는, 앞에서 소개한 표현대로라면 몰입감이 충실히 제공되는 것으로 느껴졌다.

     위에서 소개한 책은 바로 이 사이트에서 제공되는 게임 중 Queue, Stack, Hash와 같은 자료구조를 다루면서 배울 수 있는 몇가지 게임과 Search 방식과 Dynamic Programming을 다루는 몇가지 게임들을 직접 해설을 통해서 풀어보는 것을 내용으로 다루고 있다. 그래서 우리가 보통 알고리즘을 공부할 때 주로 쓰는 책인 "Introduction to Algorithm" (Cormen)처럼 정형화된 주제를 다루는 것이 아니라, 게임의 환경을 분석하고, 필요한 논리가 어떤 것인지를 소개하면서 내용을 전개해가고 있다. 어떻게 보면 실전형 알고리즘 학습서랄까.. 오히려 암기식으로 진행되는 것보다도 이렇게 실제로 내용을 경험해보면서 학습할 수 있는 요소가 많아서 좋았던 것 같다.

     책에서 알고리즘을 소개할 때 사용한 언어는 Python이기는 하나, Python 자체가 설명하기 쉬운 Pseudocode만큼이나 쉽게 써져 있어, 딱히 언어에 대한 종속성은 없어보인다. 그리고 아무래도 문제 단위로 설명했을때 부족하다고 느낄 수 있을만한 원론적인 이론 설명같은 부분은 그림과 함께 설명되어 있어, 처음 알고리즘 공부를 하는 개발자에 대해서도 어느정도 포커스를 맞춘 것으로 보인다. 그래서 왠지 조금 어렵다고 느낄만한 문제에 대해서는 이런 그림들을 통해서 조금 이해하기 쉬웠던 부분이 있었다.

     

    그림 2. 그림과 함께 설명된 알고리즘 구현 방법

     

     다만, 앞에서 소개한 것과 같이 문제 유형별로 설명이 제시되어 있어, 딱 설명할 수 있는 범주가 한정적이라는 부분은 조금 걸릴 수 있다. 아무래도 문제에 맞는 해결방법을 제시하기 때문에 딱 거기에 맞는 내용만 소개되고, 더 고급 테크닉을 찾는 사람한테는 조금 안맞을 수 있을거라 생각한다.(물론 그렇다고 이 책에 소개된 내용들이 너무 쉽거나 간단히 넘길만한 부분이 많다는 것은 아니다...) 그런 사람한테는 이 책에 굳이 한정짓지 말고, codinGame내의 경쟁모드에서 제공하는 문제나 백준도장같은 온라인 코딩테스트 사이트에서 제공하는 문제를 통해서 더 경험을 쌓는게 좋은 방법일 수 있다.

     그래도 개인적으로도 이 책에서 소개해나가는 방식은 현업에서 실제로 일하는 방식과 많이 유사하다고 생각한다. 게임을 현업과 1대1로 매칭해서 보기는 어렵겠지만, 게임만큼이나 현업에서도 어떤 문제에 부딪쳤을 때, 이를 해결하는데 필요한 이론들을 쭉 나열해보면서, 해결하기 위해 노력한다. 이런 경험을 codinGame에서 제공해주고, 이 책은 이런 경험을 익숙하게끔 가이드를 제시하고 있다. 어떻게보면 책의 분량도 많지 않아서, 과연 이 책으로도 알고리즘을 배울 수 있을까하는 의구심이 들 수 있겠지만, 막상 읽다보면 효율적으로 전반적인 게임을 통한 학습 방법 소개나 배경 이론에 대한 설명이 되어 있기에 해당 공부를 하는 사람들한테는 도움이 될 거라 생각한다.

     

  • 드디어 알고리즘이라는 것을 접해 봅니다. 들어만 봤지 실제로 책을 접해 보기는 처음입니다. 그것도 게임이라니 흥미가 동하네요. 노란색 = 병아리 = 초보를 의식한 것일까요? 지금까지 프로젝트 몇 건을 하면서 현장에서 알고리즘에 대한 이야기를 제대로 들어 본 적이 없지만, 중요하다는 것은 어렴풋이 느끼고 있었기에 알고리즘을 들여다볼 수 있는 좋은 기회였습니다.
    알고리즘(라틴어, 독일어: Algorithmus, 영어: algorithm 알고리듬, IPA: [ǽlɡərìðm])은 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것을 말한다. - 위키백과 -

    이렇게 단순히 정의만 봐도 어려운데.. 게임으로 익히는 알고리즘이라면 나도??라는 생각으로 읽기 시작하긴 했지만, 역시나 개발자도 아니고 개발적인 마인드가 부족한 입장에서는 어렵다는 생각도 들긴 했습니다. 가볍게 여길 책이 아니란 건 금방 체감할 수 있었습니다. 게임은 그저 낚싯밥..

     

     

    코딩게임 사이트

     

    이런 사이트가 있는 줄 몰랐습니다. codingame.com은 주로 단계별로 코딩을 하면서 문제 해결을 위한 알고리즘을 익히며 문제 해결 능력을 올리는 것에 주목적을 두고 있는 사이트입니다. 알고리즘이라는 단어 자체가 뭔 소리인지 모르는 사람도 책을 따라 하다 보면 이해가 가능하게끔 구성이 잘 되어 있다고 여겨졌습니다.

     

    사이트가 제공하는 여러 언어들 중, 책은 Python을 기준으로 진행하고 있습니다. 다른 책들도 그렇지만 최근의 책들은 Python으로 접근하면서 개발에 대한 설명을 하는 경향이 있다고 보였습니다. 그만큼 설명하기 편하고 이해하기가 쉬운 언어라는 것이겠죠?

     

     

     

    순서도는 비개발자에게 있어선 별로 접할일도 없고 그저 재미없는 도형의 나열일 뿐이죠. 그래도 문제를, 흐름을 정리하는데 이만한 것은 없는 것 같습니다.

     

     

     

    해당 장에서 다루고 있는 문제를 풀기위한 알고리즘에 대해 설명해 주는 부분은 개발자가 아니어도 읽어볼 가치가 있다고 생각되었습니다. 간단한 스크립트 정도는 다루기에 배열에 대해선 어느정도 알고는 있었는데 이것을 알고리즘이라 부르는 것은 이번에 처음 알았네요.(비개발자의 한계?)

     

     

     

    각 장마다 해당 과제를 풀기 위한 알고리즘에 대해 설명하고 있기에 알고리즘에 대한 지식이 없음에도 차근차근 읽어 보면 도움이 되는 내용들이라 생각되었습니다. 개발자가 아니다 보니 실질적으로 알고리즘까지 고려하면서 작업해 본 적이 없기에 읽고는 있지만 아직도 생소하긴 합니다. 근데 이게 또 나름 재미가 있네요.

     

     

     

    기본적으로 책의 의도 자체가 개발자를 위한 책이란건 알겠지만, 개발자가 아니어도 프로그램에 알고리즘이 어떤식으로 적용되는지 알 수 있기때문에 읽어 볼 가치가 있다고 느꼈습니다.

     

     

     

    책 전체를 통해 문제 해결을 위한 알고리즘을 이해할 수 있도록 되어 있습니다. 재미있는 건 이 사이트를 통해서 실력이 입증되면 취업에도 활용 가능하다는 것이죠. 일반적으로 프로젝트를 진행할 경우, 프런트 쪽은 대체적으로 사이트의 소스가 오픈되어 있지만, 백엔드의 경우는 그렇지 못하기 때문에 github 등을 이용하지만, 이마저도 보안서약에 의해 오픈하지 못하는 경우가 있을 수 있습니다.

     

    실제적으로 문제를 해결하는 능력에 대한 검증작업을 codingame을 통해서 일정 부분 파악 가능하지 않을까 하는 생각이 들기도 했습니다. 


  • <나는 리뷰어다> 8월 이벤트 당첨으로 작성한 리뷰 입니다.


    [한줄평]

    알고리즘을 게임처럼 재밌게 배우고 싶다면 바로 이책입니다.


    [목차구성]

    PART 01 코딩게임 첫걸음 떼기

    1. 알고리즘 시작하기 : 알고리즘은 무엇이고 왜 필요할까?

    2. 코딩게임 살펴보기 : 게임으로 배우는 알고리즘

    4. TEMPERATURES : 가장 낮은 절댓값을 찾아라

    5. CHUCK NORRIS : 0만 가지고 2진수 표현하기


    PART 02. 문제 속에서 답을 찾는 실전 알고리즘

    6. STOCK EXCHANGE LOSSES : 발끝에서 사서 머리에서 팔아라

    7. THERE IS NO SPOON : 2차원 배열에서 좌표 찾기

    8. WAR : 큐와 스택으로 벌이는 한판 게임

    9. SCRABBLE : 해시맵으로 단어 만들기

    10. SHADOWS OF THE KNIGHT : 폭탄의 위치를 찾는 가장 빠른 방법

    11. THE GIFT : 돈을 나누는 가장 공평한 방식

    12. DWARFS STANDING ON THE SHOULDERS OF GIANTS : 재귀 함수를 사용해 트리의 높이 구하기

    13. SKYNET REVOLUTION : I will be back to search


    PART 03. 고급 퀴즈 해결하기

    14. TAN NETWORK : 최단 경로를 알려드립니다

    15. ROLLER COASTER : 최고의 롤러코스터 타이쿤 되기


    [이 책의 주요 특징]

    1. 탄탄한 학습 설계 : 3단계 난이도별 구분과 문제 분석부터 해결, 5단계 길잡이 풀이법까지 초보자도 따라할 수 있는 탄탄한 구성

    2. 이론과 실전의 결합 : 알고리즘 이론서보다 쉬운 설명과 그에 걸맞는 문제가 있어 실전처럼 바로 문제에 활용

    3. 사고의 확장 : 문제풀이에서 끝나지 않고, 꼬리에 꼬리를 물고 그이상의 해법을 함께 생각하도록 자극하는 코너(좀 더 생각해 봅시다) 제공

    4. 코딩 테스트의 즐거움 : 시각적 재미가 가득한 게임 문제를 통해서 흥미를 잃지 않고 지속할 수 있는 코딩 테스트


    [서평]

    예전에는 미국의 구글, MS, 아마존 같은 대기업 혹은 실리콘 밸리의 소프트웨어 회사 입사때 코딩 테스트봅니다. 요즘 한국에서도 알만한 소프트웨어 회사는 입사때 코딩 테스트를 봅니다. 그래서 프로그래머로 취업을 하기위해서는 코딩 테스트를 대비해 알고리즘 공부를 해야 합니다. 하지만 시중에 나온 알고리즘 책들을보면 너무 딱딱하고 어렵고 그렇습니다. 수학 문제 풀듯이 지루하고 재미가 없습니다.


    ‘게임으로 익히는 코딩 알고리즘’은  코딩게임이라는 플랫폼으로 알고리즘을 재밌게 배울수 있게 도와줍니다.  게임 속에 적용된 알고리즘의 문제를 풀면서 게임 하듯이 코딩 테스트를 할수 있습니다. 그리고 정말 게임처럼 레벨업 개념이 있어 매일 성장하면서 코딩 실력 또한 하루 하루 좋아지는걸 경험 할수 있을겁니다. 그리고 혼자서 알고리즘 문제를 푸는것이 아니라 온라인 상의 친구들과 게임하듯이 경쟁하면서 코딩 테스트를 할수 있습니다.


    이책의 특징으로는 3단계 난이도별 구분과 문제 분석부터 해결, 5단계 길잡이 풀이법까지 초보자도 따라할 수 있는 탄탄한 구성되어 있습니다.  문제풀이에서 끝나지 않고, 꼬리에 꼬리를 물고 그이상의 해법을 함께 생각하도록 자극하는 코너(좀 더 생각해 봅시다) 제공하고 있습니다.


    부록으로 취업한 선배님들의 인터뷰 기술에 대한 소개 와 프로그램 이해에 도움되는 수도코드 또한 많은 도움이 될것입니다.


    프로그래밍 실력을 높이고 싶은 학생 또는 신입 개발자분, 기존에 알고리즘 공부를 하다가 어렵고 재미가 없어 중도 포기한 분들에게 추천할 만한 책입니다.





  • 최근 2~3년간 많은 변화가 있는 분야중 하나가 프로그래밍 혹은 코딩입니다.

    그동안 프로그래밍은 전문적으로 지식을 쌓은 사람들의 영역이라는 분위기가 강했지만

    아이들부터 노년층까지 나이와 배경, 성별을 막론하고 논리적인 사고라는 관점에서

    프로그래밍과 코딩을 접하고 즐기는 분들이 무척 많아졌습니다.

    대중을 위한 재미있는 코딩 영역이 이러한 변화를 겪고 있는 동안

    조금 진지하게(?) 프로그래밍을 대해야 하는 사람들에게도 즐거운 변화들이 생기기 시작했습니다.

    "코딩 테스트"가 많아지고 이에 대한 관심이 늘고, 해외 취업의 필수 코스가 되면서

    이를 위한 재미있는 웹 사이트들이 많이 생겨났습니다.


    게임으로 익히는 코딩 알고리즘 (한빛미디어, 2019)

    한빛미디어에서 출간된 "게임으로 익히는 코딩 알고리즘"은

    재미있는 시나리오를 바탕으로 한 코딩 과제를 수행하는 코딩게임 (https://www.codingame.com) 의

    여러가지 과제를 소재로 알고리즘을 이해하고 구현해볼 수 있도록 도와주는 트레이닝 북입니다.

    요즘은 잘 모르겠습니다만 NoPD 가 대학을 다니던 시절만 하더라도

    알고리즘이라는 과목은 굉장히 두꺼운 원서를 들고 다니며 다소 어렵고 재미없는 과목이라는 느낌이 강했습니다.

    하지만, 게임 개발이 많이 대중화 되면서 게임 개발 영역에서 알고리즘의 활용이 두드러지고 있고

    머신러닝이나 인공지능의 개발에 알고리즘 지식의 활용이 필수적인 환경이 되다보니

    이에 대한 사람들의 관심이 늘면서 코딩게임과 같은 형태의 접근 방법이 새롭게 떠오르고 있는 것 같습니다.

    게임을 만들며 코딩, 알고리즘을 배우는 곳 "코딩게임"

    책의 저자인 김영기님은 다년간의 프로그래밍 분야에서의 경험을 바탕으로

    코딩게임에서 제시하는 단계별 과제들을 정답을 알려주지 않고 스스로 해결 방법을 찾을 수 있도록

    시행착오와 탐색을 유도하며 알고리즘에 대한 이해를 이끌어 주고 있습니다.

    알고리즘 이라는 것이 한번 읽어서 이해되는 것이 아닌 만큼

    "왜 저자는 이런 접근을 했을까?", "다른 더 좋은 방법은 없을까?" 하는 생각을 갖는것이 중요합니다.

    이런 생각을 할 수 있도록 글과 코드를 이끌어 나가는 저자의 방식이 무척 매력적인 책입니다.

    이 책은 취미로 코딩을 하는 사람들에게도 도움이 될 수 있겠지만

    실무에서 프로그램은 만드는 사람들,

    프로그래밍 분야로의 진출을 생각하는 취업준비생 들에게도 좋은 지침서입니다.

    알고리즘을 재미있게 이해하고 직접 코드로 구현해 보는 것 만큼

    제대로 알고리즘을 배울 수 있는 방법은 없다고 생각합니다.

    특히 경험을 바탕으로 코드를 어떻게 생각하고 구현하며, 최적화 해 나가는지를

    저자와 함께 글과 수도코드로 이해하다보면 조금씩 성장하는 스스로를 볼 수 있을거라 생각합니다.

  •  

    KakaoTalk_20190812_135100596.jpg

     

     

    “게임으로 익히는 코딩 알고리즘” 서적은 취업, 이직, 승진 등 코딩 테스트를 준비하고 계시는 분들께 추천 드리는 알고리즘 학습서입니다.

     

    요즘 취업이나 코딩 테스트를 위해 알고리즘 학습이 유행입니다. 실제로 많은 기업들이 개발자 구인을 위해 기술 인터뷰와 코딩 테스트를 실시하고 있습니다.

     

    시중에 다양한 알고리즘 학습 서적이 출간되어 있지만, 아래 이유로 독자 여러분께 이 책을 추천 드립니다.

     

    1. 부록A에 유명 기업에서 실시하고 있는 채용 프로세스에 대한 선배 개발자 9인의 인터뷰가 수록되어 있습니다. 

     

    실제 코딩 테스트에서 중점적으로 확인하는 것이 무엇이고, 그 비중은 얼마나 차지하는지 그리고 기술 인터뷰(면접)은 주로 어떤 점을 확인하는지 자세히 서술되어 있습니다. 인터뷰 내용을 보시면 알겠지만, 게임회사의 경우 알고리즘과 자료구조는 기본적으로 테스트 항목에 포함되어 있습니다.

     

    KakaoTalk_20190812_135100418.jpg

     

    2. 책에서 사용되는 프로그래밍 언어는 파이썬입니다. 파이썬 개발자가 아닌 독자는 책에서 다루고 있는 게임 코딩의 정답 확인이 어려울 수 있는데, 이 점을 고려하여 부록B에서 수도코드(Pseudocode)를 제공하고 있습니다.

     

    그래서 파이썬 외의 프로그래밍 언어를 사용하고 있는 독자들은 어렵지 않게 이 코드를 보면서 정답 코드를 유추할 수 있습니다.

     

    참고로 코딩 게임에서 사용할 수 있는 프로그래밍 언어로는 C#, C++, Java, JavaScript, Python3, PHP 등 최신 언어 25가지 이상을 지원합니다.

     

     

    KakaoTalk_20190812_135100205.jpg

     

     

    3. 알고리즘과 자료구조는 학습량도 많고 지루하고 어려운 분야입니다. 그래서 이 책은 코딩게임(www.codingame.com)이라는 사이트에서 제공하는 프로그래밍 퍼즐 문제를 하나씩 풀어가면서 알고리즘을 학습하도록 구성되어 있습니다.

     

    * 코딩게임: 각종 프로그래밍 퍼즐 문제와 AI 프로그래밍 대회를 통해 코딩 능력을 키우고 프로그래밍 알고리즘 학습에 도움을 주기 위해 개발된 플랫폼

     

    코딩게임 사이트가 영어로 되어 있기 때문에 게임의 목표, 규칙 등을 완벽하게 이해하기는 쉽지 않습니다. 

     

    그래서 게임의 목표, 규칙, 조건, 주의사항, 제약사항 등을 상세히 서술하기 때문에 독자는 번역의 어려움에서 벗어나 코딩에만 집중할 수 있습니다.

     

    FireShot Capture 141 - Practice coding with fun programming ch_ - https___www.codingame.com_training.png

     

    4. 레벨마다 게임을 해결할 알고리즘과 해법을 상세하게 설명합니다. 우선은 적용할 알고리즘, 자료구조, 설명을 참고하지 마시고 스스로 풀어 보시길 추천합니다.

     

    이 책을 좀 더 효율적으로 학습하기 위해서, 배열 등 기본 자료구조는 알고 있는 것이 좋습니다. 특히 특정 프로그래밍 언어의 문법(조건문, 반복문 등)은 다루지 않기 때문에 사용하는 프로그래밍 언어의 문법에 익숙해야 합니다.

     

    큐, 스택, 해시맵 등 기본적인 자료구조와 알고리즘이 이 책에서 자세하게 설명이 되어 있지만 이해가 어렵거나 다양한 예제를 다루고 싶은 독자들은 아래 서적을 참고하시면 많은 도움이 될 것입니다.

     

    <자바스크립트 자료구조와 알고리즘>

     

    KakaoTalk_20190812_132258381.jpg

     

  • 

     

    다운로드.jpg

     

     

     

    현업 2년차.

    오히려 취업할 때는 알고리즘 공부할 생각을 않고 있다가

    실무에서 일하고나서야 필요성을 느껴 따로 공부해야겠다는 생각이 들었다.

     

    알고리즘은 하다보면 재밌는데 처음 시작하기가 어렵다.

    뭔가 골치 아픈 것이라는 인식이 무의식 중에 있는 것인지?

    그래서 부러 이 책을 선택했다.

    '게임으로 익히는' 알고리즘 이라서.

     

    여러 알고리즘 사이트를 이용해보기도 했지만

    머리 싸매고 풀고, 정답을 맞추면 다른 사람들의 코드를 쭉 훑어보고 만다.

    이 책으로 공부하면서 좋았던 점은, 죽이 되든 밥이 되든 스파게티가 되든,

    그저 어떻게든 풀고나서 다른 사람의 코드를 보고 감탄하고서 마는 것이 아니고

    '더 생각해봅시다'가 있어서 다른 사람의 사고 흐름을 같이 밟아나갈 수 있다는 점이다.

    꽁꽁 막혀있던 사고의 흐름을 뻥 뚫어주는 느낌이라 공부하는 즐거움을 느낄 수 있었다.

    솔직히 뒷부분은 조금 어려웠지만...

    초중급 문제가 더 많았으면 좋겠다.

    

  •  


    알고리즘 공부는 해야하는데 갖고 있는 책으로 공부하려면 뭔가 본격적으로 공부한다는 느낌이 들어

     


    선뜻 손이 안가긴 했는데, 이 책의 제목을 보고나선 궁금증이 생겼다. 게임으로 어떻게 익히지? 

     


    코딩게임!!!  


    코딩으로 게임을 할 수가 있다고? 


    코딩게임사이트에 있는 알고리즘 문제를 게임식으로 푼다는 건데... 


    공부한다는 생각이 덜 들고 게임을 한다는 기분이 들어 부담이 덜 드는 건 사실이다.

     

     


    1장은 알고리즘 개념과 기초적인 걸 간단히 설명하고 있고

     

     


    2장은 코딩게임에 대한 설명을 하고 있다.

     

     


    컬러풀하니 재미있어 보인다. 


    보통 코딩을 생각하면 흰바탕에 영어로만 이루어지고 지루한 반복인데... 


    코딩게임 대부분은 턴제시뮬레이션 게임방식! 


    상대방과 나와의 코딩 경쟁이라니... 참신하다!!! 

     


    책의 언어는 파이썬으로 되어있다. 코딩게임사이트는 여러가지 프로그램언어를 제공하기 때문에 아는 언어로 사용해도 된다. 


    책의 난이도는 프로그래밍 언어의 기본문법은 학습하였지만 막상 코딩을 시작하려니 막연한 사람이라는 것을 기억해야한다. 


    응용의 능력을 길러주려고 만든 책이지 생초짜를 위한 책은 아니라는 것이다.

     

     


    파트2부터는 본격적인 알고리즘 과정이다. 


    기존의 알고리즘 책에서처럼 말과 실전문제 등으로 끝나는 것이 아니라 


    게임을 어떤걸 사용해서 풀 수 있다는 식으로 설명하기 때문에 훨씬 이해하기 쉽고 체계적으로 익힐 수 있다.

     

     학습구성 또한 일반적인 문제해결로 끝! 이라기 보다는 더 좋은 효율이나 방법을 고민해보라는 과정도 있어서

     실제 코딩을 하는 과정과 비슷하다고 생각된다.

      


    내가 본 알고리즘 책들 중 가장 실용적이고 흥미로운 책이라 생각된다. 


    개발자가 되려는 사람들에게 간접적으로 겪을 수 있는 좋은 시간이 될 수 있을 것 같고, 


    부록에 선배개발자들의 조언들이 있어서 좋은 참고와 도움이 될 수 있는 책이지 싶다. 

  • KakaoTalk_20190809_125940859.jpg

     

    기본적으로 알고리즘을 시작하기에는 최적의 책이라고 생각 됩니다.

     

    파이썬을 기반으로 책이 구성되어 있어 입문자와 초급 개발자들에게 부담없이 다가갈수 있는 책 인것 같습니다.

     

    단순히 알고리즘을 소개하고 설명하는 책이 아닌 게임을 기반으로 필요한 알고리즘을 생각하게 만들고 그에 따른 알고리즘을 알려주어 학습흥미와 효과가 좋았습니다.

     

    문제의 난이도도 처음에는 쉽게 시작하여 점점 더 어려워 지는 구성도 좋았습니다.

     

    반드시 부딪혀야 하지만 쉽게 시작하기 어려운 알고리즘 공부를 계획하시는 분들이라면 충분히 좋은 시작 도서가 될것 같습니다.

     

  • 4차 산업혁명의 시대의 흐름에 편승하고 싶은 자, IT 업계로의 취업을 꿈꾸는 꿈나무에게 추천하고자 합니다.

     

    인턴하면서 파이썬을 쓰고 있는데 파이썬을 사용한 알고리즘 가이드북이라 좋았고, "코딩게임" 플랫폼을 이용해 재미있게 접근할 수 있었습니다. 

     

    사실, 가장 중요한 것은 문제 해결 능력이라고 생각하는데 제가 기존에 본 책들과는 달리 아이디어적으로 접근하는 부분이 친절해 알고리즘 입문자, 알고리즘을 학교에서 배웠지만 응용하지 못하는 학생들에게 더욱 도움이 될거라 생각합니다.

     

    책을 정독하고 나서 TAOCP(The Art of Computer Programming)책을 학습하면 더할 나위 없이 좋고 추후 취업을 위한 코딩 테스트에 많은 도움이 될거라 생각합니다!! Emotion Icon



  •  

    프로그래밍 챌린지나 해커 랭크 등 1세대(?) 학습 사이트에서는 조금 활동했었다.

    개인적으로 풀어보기도 했고 회사에서 팀원들과 스터디 형태로 진행하기도 했었다. 의욕 있는 사람이 생각보다 적어서 금방 흐지부지되었던 게 아쉬운 기억으로 남는다.


    문제가 주어지면 전체 코드나 일부 코드를 입력하여 여러 가지 테스트 케이스를 통과해야 한다는 해결 방식은 거의 비슷한 것 같다. 프로그래밍 챌린지의 경우에는 성능 점수 랭킹도 있었던 것 같다. 책에서 다루는 코딩 게임 사이트의 경우에는 기존에 알던 것과 다르게 매우 화려한 UI를 보여준다. 마치 게임 로비에 들어와 있는 것 같았다.



    이런 종류의 알고리즘 학습 사이트는 문제의 범위가 한정적이고 점수를 알려주는 게임 시스템을 가져왔기 때문에 접근성도 좋고 성취감도 얻기 쉽다. 거기에 코딩 게임은 입력한 코드를 게임 화면을 통해 영상으로 보여주기 때문에 더욱 즐겁게 공부할 수 있다. 챕터별로 한 문제씩 풀어볼 수 있기 때문에 비슷한 취미(?)를 가진 사람을 모아 같이 스터디하면서 보면 좋을 것 같다. 토론하면서 구현 방법이나 효율적인 코딩, 성능 등에 대해서도 실력을 키울 수 있을 것이다.


    문제는 조건 반복문처럼 기본적인 것부터 시작한다. 그리고 점점 심화된 문제가 나오고 길 찾기 알고리즘까지 소개해준다. 사실 큐나 스택, 트리, 다익스트라 등 자료구조나 알고리즘에 대한 부분은 대학교에서 컴퓨터공학을 전공했다면 아마 다 공부해봤을 것이고 처음 접하는 주제는 아닐 것이다.


    컴퓨터를 전공하고 있거나 경력 있는 개발자들에게 필수라고까진 하기 어려울 것 같다. 대신 프로젝트나 제품의 특성, 맡은 업무에 따라 알고리즘 문제들을 자주 접하지 않는 개발자가 많은데, 이런 식으로 재미있게 학습하면 추상적으로는 알고 있어도 손이 움직이지 않는 경우가 생기지는 않을 것이다. 이직 등을 위해 면접을 준비하는 경우에도 큰 도움이 될 것이다. 책의 부록에서도 개발 직군의 면접에 관한 내용도 인터뷰 형식으로 들어있다. 특히 신입이나 아직 열정이 많이 남아있는 분들에게 추천하고 싶다.

  • 이번에 소개할 책

    인트로

    컴퓨터를 공부한다면 꼭 필요한 알고리즘, 하지만 처음 컴퓨터 공부를 하는 사람들이나 보통 사람들은 알고리즘을 시작하기는 해도 보통은 정렬이나 탐색까지만 가도 이해력이 부족하기 시작한다. 물론 필자도 그런 시기가 있었다. 그때 필자는 어떻게든 이해하려고 코드를 1줄 1줄씩 직접 해석하면서 열심히 공부했는데 이번에 이 책의 설명을 보고 왜 필자가 공부할때는 이런 책이 없었을까.. 라고 생각했다. 이 책은 우리와 친근한 게임과 연관시켜서 알고리즘을 설명하는데 어떻게 효율적으로 우리를 알려줄지 한번 알아보자

     

     

    메인 내용

    이 책은 크게 3개의 파트로 이루어져있고 처음에는 기본적인 코딩의 이해를 설명하고 2장은 직접 게임과 연관시켜서 알고리즘을 설명하고 3장은 응용문제를 실제로 풀 수 있는데 전개가 매우 깔끔하다. 주 내용인 2장을 보면 13개의 알고리즘을 각각의 게임과 연관 시켜서 설명해주는데 다소 억지스러운 부분도 가끔씩은 있지만 전체적으로 이해하기 쉽고 그림으로 설명도 잘 해주어서 글을 읽기도 쉬웠다.

     

     

    나의 생각

    알고리즘은 코딩의 필수불가결한 존재이다. 하지만 그만큼 이해하기가 힘들다. 한번 이해를 하면 계속 쓸 수 있지만 그 한번 이해하기가 정말 힘든데 이 책은 그런 부분을 정말 잘 캐치한 것 같았다. 일단 쉽게 다가와서 점점 이해시켜주고 심화과정까지 이어지는 부분이 매우 매끄러웠다. 가끔씩 생각이 안날때 이 책은 다시 보기도 편하고 친근하게 다시 볼 수 있어서 좋은 책인 것 같다.

     

     

     

    마무리

    코딩을 시작하는 사람들이 늘면서 알고리즘 입문서도 점점 늘고 있는데 그 중에 게임에 관심이 많은 사람이라면 더욱 쉽게 다가가고 이해하고 매치 시키기도 쉬울 것이다. 알고리즘 입문서~ 중급자에게 매우 추천할 만한 좋은 책!

     

    **이 책은 한빛미디어로부터 지원받아 작성된 서평입니다.**

  •  

    친숙한 게임으로 알고리즘을 배운다니 처음에는 반신반의 했지만,

    저자분의 안내대로 easy 부분 문제들을 clear 하고 나니 흥미도 붙고, 자신감도 생겼다.

     

    무엇보다 현재 CS분야 취직을 위해서는 알고리즘이 필수인데 차근차근 단계별 문제로 알고리즘을 학습하는 게 좋다고 생각한다.

     

  • 책 제목 : 게임으로 익히는 코딩 알고리즘

    저자 : 김영기

    출판년도 : 2019.05.06

     

    게임개발자라는 직업을 가지기 위해, 그리고 게임개발자가 되서도 몇몇권의 

    알고리즘 책을 읽은 기억이 있다.

    소설방식의 알고리즘 책 부터 하드커버의 흉기같은 알고리즘 바이블.

    알고리즘이나 자료구조론을 공부하는건 참 힘들기도 하고 어떤 경우에는 희열감도 있다.

    기본적으로 알고리즘은 어렵다.

    알고리즘은 결국 어떤 문제를 해결하기 위한 방법및 과정이고 좀 더 좋은 방법을 찾기위해

    열심히 고민해야하기 때문에 복잡하다.

    그렇기 때문에 더 좋은 방법을 생각해내거나 풀어냈을 경우 보람과 성취감이 있다.

     

    이 책 또한 알고리즘이라는 쉽지않은 학문을 쉽게 배우는 것이 목표다.

     책의 내용...

    책의 내용은 크게 3가지로 나뉜다.

    첫 파트는 알고리즘과 코딩에 대해 쉽게 접근할 수 있도록 쉬운내용을 먼저 소개한다.

    거의 프로그래밍 언어의 기본 문법위주의 내용이다.

    두번째 파트는 큐, 스택, 해시, 그래프같은 자료구조에 대한 내용이 주를 이룬다.

    실제적으로 자료구조론과 알고리즘은 서로 밀접한 관계를 가진다.

    세번째 파트는 재귀, 탐색, 길찾기, 동적프로그래밍등 여러 프로그래밍 알고리즘에 대해 학습한다.

    결국은 접근, 활용, 응용처럼 처음에는 쉬운난이도에서 고난이도로 간다.

     

    첫파트에서는 알고리즘에 대한 간단한 소개와 이 알고리즘을 배우기 위한 수단에 대해 설명한다.

    바로 코딩게임이란 것을 수단으로 알고리즘을 학습한다.

    알고리즘을 공부하는 수단이 게임이라는 것이 정말 참신하다.

     

    첫번쨰 파트는 전반적으로 간단한 내용을 다루었다.

    그래서 난이도는 Easy이다.

     

    두번째 파트에서는 자료구조에 대해 다룬다.

    자료구조는 프로그래밍에서 데이터를 구조적으로 표현하는 방법에 대한 내용이라 

    처음 보는 사람에게는 생소한 내용이 많다.

    큐와 스택, 해시맵, 이진탐색등 듣기만 해도 어려운 내용들이 많다.

    이 파트에서는 이 자료구조를 이용해서 코딩게임을 할 수 있다.

     

    세번째 파트에서는 알고리즘을 활용해서 좀 더 어려운 문제에 도전해 보는 파트다.

    최단경로, 원형와 같은 문제에 대해 고민하고 해결한다.

    그리고 뒤에 부록으로 실려있는 개발자들의 인터뷰 내용도 꽤나 재미있다.

    현 개발자들의 노하우와 마인드, 철학 등을 엿볼 수 있다.

    읽어보면 많은 도움이 된다.

     

     

     

    책을 읽으면서...

    많은 기술서, 학습서를 읽어왔지만 이 책만큼 공부를 재미로 매칭시킨 예는 보지 못했다.

    알고리즘도, 자료구조론, 프로그래밍 모두 재미있게 공부하기는 힘든 영역이다.

    많은 입문서들이 좀 더 쉽게, 체계적으로 배울수 있도록 배려 했다면 이 책은 쉽게 접근해서

    재미있게 배우도록 배려했으며 이를 위해 코딩게임이라는 기존 플랫폼을 잘 활용했다.

    책의 구성도 무척 편하게 되어 있다.

    각 챕터의 첫 페이지에서 이 챕터는 어떤 내용이 나올 것 인지를 알 수 있고,

    각 챕터내 일관된 구성으로 책을 체계적으로 편하게 학습할 수 있도록 한다.

    문제설명 - 푸는방법 - 필요한 알고리즘 - 코드에 대한 이해도와 같은 형식으로 구성되어 있다.

    만약 처음 알고리즘 및 자료구조론 책을 봐야하거나 코딩게임에 대해 입문하려 할 경우 

    이 책은 충분히 만족할 만한 내용을 담고있다.

  •  

    B7463314905_l.jpg

     

     

    탑코더, 리트코드, 해커랭크 등 수많은 알고리즘 공부&경쟁 사이트들이 있지만 알고리즘 문제 자체에 게임의 형식을 차용한 곳은 많지 않다. 메이저한 곳 중에서는 본서에서 다루고 있는 코딩 게임 사이트가 있다. 여기에 올라오는 퍼즐 중 사이트에서 직접 제공하는 것들은 모두 그래픽을 씌운 게임의 형태이다. 쉬운 퍼즐도 화려한 그래픽으로 무장하고 있기 때문에 처음 알고리즘을 공부하는 사람이라면 큰 노력없이 자신이 짠 코드에 그래픽이 덧붙여져서 작동하는 것을 감상할 수 있기 때문에 좀 더 흥미를 가질 수 있다. 

     

    나는 이 사이트에 예전부터 가입해 있었지만, 이 책을 받고 나서 다시 들어가보니 예전 기록은 13레벨에서 멈춰 있었다. 책에서 제공하는 예제를 풀고, 사이트가 아닌 유저들이 직접 만든 커뮤니티 퍼즐을 몇 개 더 풀고 나니 15레벨이 되었다. 사이트에서 제공하는 퍼즐은 Easy, Medium, Hard, Very Hard의 난이도로 구분되어 있다. 책에서는 이 중 Easy 3문제, Medium 8문제, Hard 2문제를 다룬다. 언어로는 python을 사용하고, 독자가 노력 없이 답만 베껴서 문제를 푸는 것을 막기 위해 답의 전문을 제공하지는 않는다. Easy와 Medium 문제들을 다룰 때 저자는 문제와 함께 이 문제를 풀기 위한 프로그래밍 기본 개념을 자세히 설명한다. 마치 프로그래밍 입문서라고 해도 손색이 없을 정도이고 책도 컬러이기 때문에 초심자에게 추천할만하다. 예전의 나처럼 기초가 부족한데 의지도 부족한 사람이라면 이 책을 집어들고 Easy 장의 코드를 하나하나 따라하면서 문제도 풀고 사이트의 레벨도 올릴 수 있겠다. 게이미피케이션(Gamification)은 언제나 보통 이상을 해내는 훌륭한 도구이다. 

     

    책의 내용에 비해 제목이 좀 아쉬운데 처럼 책에서 다루는 사이트를 직접 제목에 명시해도 좋았을 것 같지만, 독자를 한정하는 효과도 있었을 것 같다. codingame이 top coder만큼 유명한 사이트는 아니기 때문에 홍보에 큰 도움이 되지 않을 것이라고 생각했을지도 모르겠다.

  • 이책은 코딩 게임 사이트를 참고로 하여 알고리즘에 대한 설명을 진행하는 책입니다.

    위 사이트와 비슷한 것으로는 아래와 같은 코드 파이트라는 사이트가 있습니다.

    인기가 많아지고 인지도도 높아지며, 유료서비스 들이 런칭된 듯도;;

    https://codesignal.com/

    코딩을 즐기고 싶은 사이트를 하나 알게 해준 고마운 책!

    초보자들에게는 뜬금 없이 알고리즘에 대하여 이야기 하는 것 보다 적용될 상황과 함께 설명이 곁들여 지는 내용라 많은 도움이 된다고 생각이 듭니다.

    알고리즘을 쉽게 재미있게 설명하기 위한 툴로써 코딩 게임 사이트를 이용하고,

    하나하나 퀘스트를 풀며, 그에 사용되는 알고리즘을 그림과 함께 친절히 설명합니다.

    제목만 보면 게임에 사용되는 복잡한 알고리즘에 대한 설명으로 어려운 내용일꺼라고 착각하겠지만,

    쉬운것 부터 어려운 것까지 게임에 사용될 만한 알고리즘들을 이해할 수 있게 차근 차근 설명하며,

    도구로 사용되는 코딩게임사이트 또한 게임처럼 코딩을 진행합니다.

    초보들에게는 즐겁게 알고리즘을 배우고

    이외의 사람들에겐 초심을 돌아보며, 언젠가 배운 내용을 다시 한번 복습하며

    즐겁게 머리를 식힐 수 있는 시간을 가질 수 있다고 생각합니다.

    저는 책은 틈틈히 보고~ 추천되 사이트 내부를 돌아 다니며 맘에 드는 문제들로 코딩 라이프를 즐겨야 겠습니다~!

    [책에서 소개하는 사이트 링크]

    https://www.codingame.com/

     

     

  • 『게임으로 익히는 코딩 알고리즘』, 김영기 지음, 한빛미디어, 2019 얼마전 일본 소프트뱅크의 손정의 회장이 한국을 방문해 문재인 대통령을 만나 ‘한국의 미래를 위해 필요한 것은 첫째도 AI, 둘째도 AI, 셋째도 AI’라고 이야기했다는 기사를 접했다. AI가 결코 먼 미래의 이야기가 아니라, 지금 당장 우리의 실생활에 적용될 것이라고 느낀게 된 계기는 이세돌 구단과 알파고의 바둑대결 이후로 기억된다. 인공지능, 딥러닝, 머신러닝이라는 단어들이 동어반복처럼 들릴 만큼 IT 용어에 낯설었는데, 알파고를 계기로 딥러닝과 머신러닝의 차이를 알게 되었다. 그리고, 이러한 AI의 급속한 발달은 자율주행 차량, IoT에 적용되며 우리가 실생활에서 하는 많은 활동들을 대체함으로써 편리함을 제공할 것이기에 반가운 마음이지만, 다른 한편으로는 현재의 많은 직업들이 사라질 것이라는 불안감이 들기도 했다. AI의 중요성은 알겠는데, AI로 인해 변화될 세상에 대해서는 알겠는데, 나는 AI의 변화에 어떻게 대응해야 하는 것인지는 감이 잡히지 않았다. AI의 핵심이 알고리즘이고, 이 알고리즘은 컴퓨터 프로그래밍을 기반으로 한다는 것을 알게 되면서 경제학을 전공한 나와는 아주 먼 이야기로 들렸다. 프로그래밍 언어를 처음부터 시작해야 하나라는 생각에 의욕이 껶꺾여버렸다. 그런데, 게임으로 익히는 코딩 알고리즘은 꺾인 의욕을 다시금 일으켜 세워줬다. 네덜란드의 역사학자 요한 하위징아는 인간을 호모 루덴스(놀이하는 인간)이라고 했다. 노동으로써 하면 지루한 일들도 놀이로는 즐기면서 하게 되는 호모 루덴스. 『게임으로 익히는 코딩 알고리즘』은 코딩게임을 통해 알고리즘을 익힐 수 있는 방법을 소개하고 있다. 게임 형식이 아니라면 딱딱한 내용이고, 문제해결 중심이 아니라, 텍스트 위주로 익힐 수 밖에 없었을 것이다. 하지만 게임이다 보니 주어진 문제를 해결하기 위해 집중하다보니 코딩에 대해 더 깊이 이해하게 되는 것 같다. 코딩언어로만 설명하지 않고, 간단한 그림을 삽입하여 비전공자라도 쉽게 이해할 수 있고, 논리 흐름을 따라갈 수 있게 구성되어 있어 이해하는데 무리가 없었다. 빅데이터를 활용하는 것이 현재 업무에 도움이 될 것이라고 믿어 의심치 않는다면, 알고리즘, 코딩을 익혀야 함은 자명하다. 다만 어떻게 해야 할지 방법을 찾고 있었다면 『게임으로 익히는 코딩 알고리즘』을 추천한다. 게임을 즐기듯 빠져들게 된다. 코딩의 기초부터 시작해 고급 난이도까지 빠르게 익힐 수 있다.

  • 20190711_223250.jpg

     

    20190711_223509.jpg

     

    알고리즘은 컴퓨터 공학의 핵심 분야입니다. 기업에서는 문제 해결 능력을 보기 위해 채용 과정에 알고리즘 시험을 보기도 합니다.

     

    입사, 승진, 이직을 알고리즘 테스트를 많이 보기 때문에 알고리즘이라 하면 시험을 떠올리기 쉽지만, 사실 알고리즘은 현업에 매우 가까이 있습니다.

     

    책은 알고리즘을 시험으로만 생각했던 틀에서 벗어나 문제 해결이라는 본질에 집중할 있게 도와주는 책입니다.

    코딩 게임이라는 사이트에서 직접 코드를 실행하고 제출할 있는 장점도 있습니다.

    자료구조에 대한 이해가 있고 파이썬을 다룰 있다면 가볍게 보기 좋은 책입니다.

     

    다만 실제 알고리즘 테스트 문제들과는 다소 다르고 난이도도 높지 않기 때문에 알고리즘 테스트 준비용으로는 추천하지 않습니다.

     

    순수하게 문제를 푸는 즐거움을 느끼고 싶은 분들에게 추천합니다.

     

  •  

    개발자로 일하진 않지만, 간단한 툴이라던지 웹상 소스코드 분석이라던지 앱개발이라던지 진행을 할때

    등등...

     

    어찌됐든 컴퓨터 관련된 사무직을 하면 한번쯤은 접해야 하는 부분이 알고리즘이다.

    하다못해 엑셀 함수사용이라도

     

     

    첫 직장에서 프로젝트가 끝났을때 시간이 많이 남을때 우연히 알게된 백준 알고리즘 (https://www.acmicpc.net/) 에서

    문제를 풀던때가 기억이 새록새록 났.....

     

    생각난김에 접속해서 정보를 확인해봤다.

     

    생각보다 적게 풀었네...

     

    [그림2] 백준 기록

     

    그렇다고 합니다.

     

     

    다시 책으로 돌아가서, 처음엔 컴퓨터 알고리즘이 무엇이며 왜 필요한지  지루한 설명을 하고

     

    오랜만에 단어를 본 시간복잡도, 공간복잡도라는 알고리즘의 성능에 대해 간단히 알아보고

     

    본격적으로 게임으로 배우는 알고리즘에 대한 설명이 나온다.

     

     

    이 책에서는 파이썬을 사용한다고 한다.  나도 파이썬이 제일 좋...

     

    코드게임이라는 사이트에서 코드 작성을 통해 알고리즘을 배우는 것 같다.

     

     

    [그림3] codingame.com

     

     

    위 사이트에 접속하면 정신없이 이미지가 움직인다.

     

    Get Started 눌러서 시작해보자

     

     

    튜토리얼이 시작된다.

     

    [그림4] 튜토리얼

     

    진짜 게임이 진행되는것 처럼보인다. 

     

    중간에는 어떻게 코드진행을 해야하는지 설명이 있고 오른쪽 화면에 그에맞는 코드를 작성하면 되는것같다.

     

    하단에 테스트 재생버튼을 누르면 코드가 실행되고 왼쪽하단에는 코드 실행 로그가 찍히는데

     

    스크롤로 움직여보면 왼쪽 상단의 게임화면도 같이 변한다. 신기방기

     

    오른쪽 하단에 submit을 누르면 서버에 결과가 전송된다.

     

     

    끝나면 다음 스텝을 진행 할수 있는데...

     

     

    일단... 문제가 영어다. 

     

    책 겉표지만 봤을땐 진입장벽이 낮을거 같았는데

     

    코딩게임에서 나오는 문제 설명이 영어라니, 물론 다행이 우리에겐 갓구글이 있다

     

     

    책 초반에는 프로그래밍 언어에서 사용하는 간단한 언어를 통한 알고리즘

    - 최소값, 최대값, 반복문, 조건문 등등

     

    중간에는 주식관련 알고리즘 설명이 나오는데.. (불현듯 잊고있던 가상화폐가 생각이 났다.)

     

    책 뒤로갈수록 점점 더 심화 되고 대학교 수업에서나 듣던 알고리즘 관련 문제들까지 나온다.

     

     

    물론 질문을 던지고 생각할 시간을 주면서 뒤에선 차근차근 왜 이런지 설명을 해주는 방식으로 진행이 된다.

     

    - 어떤 알고리즘을 설명하고, 이 알고리즘은 어디에 어떨때 사용하는지, 어떻게 진행되는지 등등

     

     

    이 책을 보면서 과연 "책을 뒤에까지 보면서 실습 할 수 있을까?" 라는 생각이 들었다가

     

    동시에 책을 보지않고 문제를 먼저 혼자서 고민하고 풀어서

     

    책과 내 방식이 같은지 틀린지 확인하는 것도 재밌을것 같다는 생각이 들었다.

     

     

  • IMG_9256.JPG

     

    게임으로 익히는 코딩 알고리즘 리뷰

     

     

    요즘 개발자의 취업 첫 단계는 바로 코딩 테스트일것이다. 지금까지도 많은 회사들이 코딩 면접을 보고 있고,

    앞으로 더 많은 회사들이 면접 프로세스에 코딩 테스트를 추가할 것이다.

     

    이 책은 취업을 준비하는 개발자들과, 자신의 알고리즘 로직을 향상시키고 싶은 개발자들을 위한 책이다.

     

    코딩 문제들을 훈련하기 위한 사이트들 중에, 저자는 코딩 게임 (codingame.com)을 통해 다양한 알고리즘을

    쉽게 설명하고 있다. 책의 큰 구분은 아래와 같다.

     

    • 코딩게임 소개: 코딩 게임 (codingame.com)의 인터페이스 및 제공 서비스를 간략히 소개하며, 어떻게 활용할 지 제안한다.
    • 프로그래밍 기본 문법 문제: 알고리즘 문제들을 해결하는 데 활용할 언어의 기본 문법을 활용하는 문제들을 해결한다.
    • 대표적인 자료구조들을 이용한 문제: 스택, 큐, 해시, 그래프 등을 활용하여 문제들을 해결한다.
    • 대표적인 알고리즘들의 문제: 재귀, 탐색, 길 찾기, 동적 프로그래밍을 활용하여 문제들을 해결한다.

     

     

    이 책의 장점은, 초심자들에게 어려울 수 있는 알고리즘들을 쉽게 설명하고 있다는 것이다. 그리고 이미 해당

    알고리즘들을 알고 있는 개발자들은 그 알고리즘을 이용해 직접 문제를 해결하는 연습을 해볼 수 있다.

     

    초반부에 간단한 문법들을 알고있는 개발자들은 해당 부분을 뛰어넘고 시작하는 것을 추천하며, 이미 알고있다고

    하더라도 알고리즘 문제들을 이 책을 통해서 점검한다면 코딩 테스트에서 좋은 결과를 얻을 수 있을 것이다.

     

    또한 설명적인 장점과 더불어, 이 책에서는 코딩 문제를 어떻게 분석하는지를 설명하는 것이 큰 장점이라고

    생각한다. 많은 개발자들이 자료구조나 알고리즘의 매커니즘을 이해하고 있지만, 실제 문제에 적용할 때는

    어려움을 겪는다.

     

     

    이 책에서는 문제에 대한 자세한 분석과, 이러한 상황에서 어떠한 알고리즘이나 자료구조를 사용해야하는지

    친절하게 설명한다. 코딩 문제 연습의 기초를 닦을 수 있는 것이다. 이러한 훈련을 하고, 앞으로 다양한 코딩

    테스트를 위한 플랫폼들에서 문제 분석 및 해결을 연습한다면, 취업시 코딩 테스트에서 어려움을 겪을 일은

    없을 것이라 생각한다.

     

     

    지인에게 이 책을 추천할 의향이 있으며, 다른 어린 학생들에게는 미래 준비를 위해 이 책을 선물할 의향이 있다.

    많은 분들이 이 책을 잘 이용하여, 많은 것을 얻어갔으면 좋겠다.

  • B7463314905_l.jpg

     

      리뷰에 앞서 본 리뷰는 한빛 출판 네트워크에서 진행한 ‘나는 리뷰어다’ 이벤트에서 제공받은 책으로 진행한 것을 밝힙니다.

     

      정확히 기억이 나지는 않지만, 4~5년 전부터 현재 다니고 있는 회사에서 프로그램 코딩 실력을 시험하는 제도를 도입하고, 사원들에게 사내 자격을 취득하도록 독려하고 있다. 자격 취득을 위해 시험을 보면, 알고리즘을 응용하여 주어진 문제를 정해진 시간내에 푸는 문제가 제시된다. 현업에서 작성하는 코드와는 일견 관련이 없는 것처럼 보이고, 고급 알고리즘을 사용하지 않더라도 당장 프로그램을 구현하는 데에는 문제가 없는 경우도 많이 있다. 그러다 보니, 왜 이런 자격을 취득해야만 하는지에 대해 의문을 제기하는 사람들 역시 존재한다.

      하지만, 이러한 자격 시험의 목적은, 프로그램 작성을 위한 기초 체력을 키우는, 즉 유연한 생각을 가지고 복잡한 문제를 제대로 해결을 할 수 있도록 하는 데 있다고 생각한다. 좀 더 높은 자격을 취득하기 위해, 평소에는 소홀히 했던 자료구조를 다시 공부하게 되고, 이를 응용한 문제를 다시 풀어 보면서, 이런 저런 문제 풀이 방법을 고민해보고... 이런 과정을 반복하면서 굳어져가는 머리를 조금씩 부드럽게 하는 연습을 할 수 있다고 생각한다.

      이러한 자격 취득을 현업 개발자 뿐만 아니라, 취업을 준비하는 사람들에게도 요구를 하다보니, 시중에는 여러가지 알고리즘 트레이닝 관련 책들 및 온라인 judge 사이트가 다수 존재한다. 보통 이러한 책들에서 설명하는 문제의 유형은 온라인 사이트에서 제시하는 내용과 크게 다르지 않다. 책을 이용해 문제를 풀기 위해 필요한 알고리즘을 종류와 원리를 이해하고, 이를 바탕으로 온라인 사이트에서 문제를 풀어보고 하는 과정을 반복하면서 실력을 늘리는 분들이 많이 있을 것이라 생각된다. 

      아무래도 어려운 문제 풀이 과정을 반복하다보면 지루해지는 감이 있는 것이 사실이다. 리뷰를 하기 전에는 사실 codinggame 이라는 온라인 사이트가 존재하는 줄 몰랐다. 리뷰를 하면서 문제를 직접 사이트에 접속해 풀어보면서, 코드 작성과 디버깅 모두 지루함을 느끼지 않는 다는 것을 느꼈다. 본 사이트에 제시된 문제들은, 작성자가 특정 조건을 만족하고, Test case들을 풀어나감에 따라 화면에 게임이 진행되는 것을 볼 수 있다. 그리고 문제 디버깅 역시 단계별로 게임 진행 상황을 보면서 체크할 수 있어 생각한 것보다 더 재밌게 코드 작성을 즐길 수 있도록 유도하고 있다. 그리고 이 사이트의 또 다른 장점은 문제 풀이에 사용할 수 있는 언어가 다양하다는 점이다. 보통 온라인 사이트들을 보면 C, C++ 만을 이용할 수 있는 곳이 많이 있는데, 이 곳은 Python, Ruby, Go, C# 등 인기있는 다양한 언어를 이용할 수 있다.

      이 책의 저자는, 즐겁게 코드를 작성하고 실력을 늘려갈 수 있도록 해당 사이트의 이용방법에 대한 설명을 시작으로, 간단한 문제부터 어려운 난이도까지 문제를 풀어가면서 알고리즘 트레이닝 및 사이트 이용방법 모두에 대해 설명을 해 주고 있다. 책에서는 단순히 문제만 푸는 것이 아니라, 어떤 문제에 어떤 알고리즘이나 자료구조를 적용하여 문제를 푸는 것이 좋은지, 그리고 어떻게 문제 풀이를 접근해야 하는지도 하나 하나 짚어주고 있어, 알고리즘 트레이닝 입문자에게 있어, 큰 도움이 될 것으로 판단된다. 사실 문제를 보고 덥썩 코딩부터 시작하는 사람들도 많이 있는데, 저자는 어떤 식으로 문제를 파악해야 하는지, 그리고 문제를 푼 후, 속도를 최적화하기 위해 접근해야 하는 방식에 대해서도 집어주고 있어, 입문자가 아니라 문제 풀이 방식을 배우고자 하는 분들에게도 도움이 될 수 있다고 생각한다. 또 Python을 이용한 문제 풀이 과정을 따라 하면서 Python 언어에 익숙치 않은 사람들에게 있어서, 적절한 Python 사용법도 익힐 수 있다.

      그러나, 이 책의 목적과 다르게 고급 실력을 키우려는 사람들이 이 책을 선택했을 때는, 원하는 바와 맞지 않을 수 있다고 생각한다. 대부분의알고리즘 트레이닝 책들과 마찬가지로 이 책 역시 반드시 다루어야 하는 내용들을 다루고 있다. 이 부분은 중급 이상의 고급 문제 풀이 과정을 기대하는 분들에게는 이 내용들이 시중에 나와있는 다른 책들의 내용과 중복되는 면이 있다고 생각할 수 있기 때문이다.

      하지만, codinggame 사이트를 통해 즐겁게 코드를 작성하고, 이를 통해 프로그램 작성의 응용력 및 기초 체력을 증진 시키는 것을 원하는 분들에게는 이 책이 목적에 딱 맞는 책이 될 것이다.

  • [리뷰] 게임으로 익히는 코딩 알고리즘

     


    개요

    본 리뷰는 한빛미디어 출판사 "게임으로 익히는 코딩 알고리즘"을 읽고 얻은 지식을 정리한 글입니다.

    알고리즘으로 게임하는 세상이 올 줄이야…


    신선하다. 세상이 빠르게 변하고 점점 좋아진다는 건 알았지만 게임으로 알고리즘을 배우는 책이 나오리라고는 생각하지 못한것이 사실이다. 게임이든, 책이든 수단이 뭣이 중요한가 생각이 들기도 했지만 내 안에서는 알고리즘은 왠지 수학과 친밀하고 교과서 같은 분위기에서 벗어나면 안된다는 일종의 프레임이 형성되어 있었던 것 같다.

    책을 펼치자마자 코딩게임 공식 사이트로 바로 들어가 보았다. 링크를 클릭하면 구글 OAuth 덕분에 별도 회원가입 없이 로그인이 가능하다. 구글 계정 등으로 로그인한 후 아래 그림과 같은 화면을 볼 수 있다. 처음이라 복잡해 보이지만 단순히 비교문 if만 알면 쉽게 풀 수 있는 쉬운 문제이다. 빨간색 동그라미 부분의 코드를 작성한 후 PLAY ALL TESTCASES를 클릭하면 좌측 상단의 멋진 게임실행 화면을 볼 수 있다. 그 후 GOT IT 또는 SUBMIT 버튼을 누르면 결과가 제출하고 메인화면으로 이동하게 된다. 
    코딩게임접속화면

    어떤가 꽤 참신하지 않은가? 너무 참신하여 혹시 게임 플랫폼 광고용으로 만든 책은 아닌건지, 혹은 첫인상은 매혹적으로 다가왔는데 실상 알고리즘 핵심은 텅텅 비어있는 껍데기에 불과한 책은 아닌지 의심이 되기 시작했다. 그러나 기우였다. 사실 지금까지 읽은 어떤 알고리즘 책 보다도 쉽게 설명하고, 가독성을 높이기 위한 시각화 처리가 잘 되어있으며, 실전에 필요한 케이스를 다룸으로써 집중력을 높여준다. 아래 그림에서 보듯 주요 알고리즘을 시각적으로 쉽게 설명해 준다.알고리즘도1알고리즘도2알고리즘도3

    Science에 가까운 흥미를 떨어뜨리는 요소는 실전에 필요한 만큼으로 간결하게 압축하여 설명하였고 대신 이해의 깊이가 필요한 것은 놓치지 않고 다루었다. 알고리즘의 핵심개념과 시간복잡도, 공간복잡도를 알기 쉽게 설명한 후 초보자를 위해 조건문, 반복문, 인코딩과 관련된 기본기를 탄탄하게 해주는 게임부터 시작한다.

    이어 2차원 배열, 큐, 스택, 해시맵 등의 자료구조를 다루고 탐욕 알고리즘, 그래프, 탐색(너비우선, 깊이우선), 재귀, 트리 등 알고리즘에서 가장 중요한 개념도 다룬다. 심지어 다익스트라, 동적프로그래밍까지 다루며 화룡정점을 찍는다. 흥미뿐만 아니라 지식의 깊이도 놓치지 않으려는 노력이 돋보였다.

    구성 측면에서도 학습 능률을 높이기 위한 장치로 더 생각해 봅시다 코너를 두었는데 이 부분의 구성이 가장 마음에 든다. 배운 것을 토대로 나아가야 할 방향을 제시하고 흥미를 유발시켜 준다. 10장의 폭탄의 위치를 찾는 게임의 경우 학부시절 혼자서 만들었던 게임 생각이 났는데 그렇게 고심해서 혼자 만들었던 과정에서 얻은 내공 덕에 지금 먹고 살 수 있다고 생각한다. 여러 Chapter를 거치면서 그런 유익한 시간이 된다면 독자들에게는 큰 보탬이 될 것이다.

    내용의 깊이, 구성, 흥미, 참신함 뭐 하나 떨어지는 구석이 없어서 솔직히 단점을 잘 못찾았다. 잘 만들어진 책이라는 생각이 들었다.

    개발인생 15년. 알고리즘이 중요하다고 느낄 때

    사실 한국 IT개발 시장에서 알고리즘을 쓸 일이 흔치는 않다. 알고리즘은 보통 각 언어들에 Library 형태로 잘 구현이 되어 있으며 잘 구현된 예제를 보며 찍어내기를 얼마나 빨리 하느냐가 그동안 IT시장에서 바라는 인재상이었기 때문에 쓸 일이 많지 않았다. 정말 슬픈현실이다.지금도 크게 다르진 않으나 AI, 딥러닝 분야를 필두로 뭔가 변화가 보이기 시작했다. 보다 수학, 통계학에 가까운 Science를 다룰 줄 아는 인재가 필요해지고 있다.

    • 알고리즘이 뭔데?
      간단히 말해서 문제를 해결하기 위한 (가급적 최선의 방법을 찾는)절차라고 할 수 있다.

    • 그런데 그게 왜 중요한데?
      문제 자체도 해결할 수 있고 시간복잡도, 공간복잡도 등을 예상하여 자원 사용을 효율화하고 연산 속도를 높이는데 큰 도움을 준다.

    • 어차피 컴퓨터로 돌리면 빠른거 아냐?
      이해를 돕기위해 간단한 예시를 들어보겠다. 이 책의 11장에서 다루는 외판원 문제를 생각해보자.

      외판원 문제? (출처 - 위키백과)
      여러 도시들이 있고 한 도시에서 다른 도시로 이동하는 비용이 모두 주어졌을 때, 모든 도시들을 단 한 번만 방문하고 원래 시작점으로 돌아오는 최소 비용의 이동 순서를 구하는 것이다. 그래프 이론의 용어로 엄밀하게 정의한다면, “각 변에 가중치가 주어진 완전 그래프(weighted complete graph)에서 가장 작은 가중치를 가지는 해밀턴 순환을 구하라”라고 표현할 수 있다.

      • 도시가 2개라면, A->B, B->A [2개]
      • 도시가 3개라면, A->B->C, A->C->B, B->A->C, B->C->A, C->A->B, C->B->A [6개]
      • 도시가 10개라면, [3,628,800개]의 경우의 수가 나온다.

      핵심은 도시가 n개라면 이동 가능한 경로의 수는 n!이 된다는 것이다. 시간 복잡도가 O(n!)가 되는 것이다. A라는 컴퓨터에서 위 알고리즘을 수행하는 데 걸리는 시간 O(1)을 무난하게 1초라고 가정하자.

      그리고 우주의 나이를 계산해보자. 지금까지의 관측한 결과를 바탕으로 ΛCDM 모형을 적용하면 우주의 나이는 약 137.98 ± 0.37억 년으로 추정된다. 비교를 위해 단위를 위에서 가정한 단위로 변경해보자.

      1년 = 365일 = 365 * 24시간 = 8,760시간 = 8,760 * 60분
      = 525,600분 = 525,600 * 60초 = 31,536,000초

      이므로,

      우주의 나이 =  1.3798 * 10^{10} * 3.1536 * 10^7  = 약  4.35 * 10^{17}

      가 나온다.

      1. O(n!) > O(2^n)
      2. 2^{10} = 1024 = 10^3

      두가지 상황을 어림잡아 17 × 10 /3 = 약 57. 위의 가정하에 대략 57개의 도시만 있으면 A컴퓨터로 우주의 나이 만큼 연산을 수행해야 결과를 구할 수 있다는 의미가 된다. (예시를 위해 대략적으로 계산하며 생긴 오차가 있을 수 있으니 양해 부탁드린다.)

    • 그리고 언제 또 쓰이는데?
      • 구글 검색 서비스가 2초 이상 걸린다면 고객이 구글을 사용할까? 구글의 가장 큰 자료는 피처수가 10억개에 육박하는 것도 있다. 아무리 서버 컴퓨팅 파워가 버텨준다 쳐도 조금이라도 빠르게 검색 알고리즘을 개발해야 하지 않을까?
      • 모바일에서 딥러닝을 작동시키려면 한정된 자원을 최대한 활용할 수 있어야 한다.
      • 딥러닝의 연산량도 마이크로 Sec 차이가 최종 성능에는 엄청난 영향을 미친다.
      • 일반적인 App도 자원을 얼마냐 쓰느냐가 배터리 소모에 직결된다.
      • 구글이 온도 1도씨라도 줄이기 위해 IDC센터를 폭포 옆으로 이전한 이야기를 들은적이 있는가? 알고리즘이 발열량에도 영향을 미친다.

    그 뿐만이 아니다. 알고리즘을 사칙연산처럼 쉽게 쓰는 것은 어렵다. 상황에 따라 다르게 쓰일 수 있기 때문이다. 그 개념에 한바탕 푹 빠져든 채로 살아야 숨쉬듯이 자연스럽게 몸에 베는 것이다. 단순히 알고리즘 지식만 얻는 것도 아니다. 자연스레 프로그래밍 스킬도 얻게 되고 사고의 속도에 박차를 가할 수 있는 된다. 그럼에도 알고리즘 공부를 하지 않을 것인가?

    누가 읽어야 하는가?


    • 초보 프로그래머, 컴퓨터 전공 학부 초년생

    • 경력은 많아도 찍어내기 신공에만 탁월한 응용력이 부족한 현직 개발자

    • 기타 프로그래밍에 관심이 있으신 분
      데이터 분석, 경제학 등 프로그래밍을 알면 큰 시너지 성과를 얻을 수 있는 타 학문 전공자에게도 알고리즘 개념의 기초를 다지기에 정말 도움이 되는 책이다.

    책의 구성 및 요약


    이 책은 크게 세 부분으로 구성되며, 각 장에서 다루는 내용을 요약해 보았다.

    • 1. 알고리즘을 위한 최소한의 기초지식(1 ~ 5장)
      • 알고리즘의 핵심 개념과 시간복잡도, 공간복잡도 개념 파악
      • 조건문, 반복문, 인코딩 등 기본기 전수
      • 코딩게임에서 노는 방법
      • 그 외 프로그래밍 기본 문법과 데이터 타입에 익숙해질 수 있다.
    • 2. 핵심 자료구조와 알고리즘(6 ~ 13장)
      • 배열, 큐, 스택, 해시맵 등의 자료구조
      • 탐욕 알고리즘, 그래프, 탐색(너비우선, 깊이우선), 재귀, 트리 등 알고리즘
      • 실전에서 알고리즘을 활용하게 되었을 때 대처하는 자세
    • 3. 고급 알고리즘(14장 ~ 15장, 부록)
      • 다익스트라, 원형큐, 동적프로그래밍 등 고급 알고리즘
      • 취업한 선배들이 알려주는 Tip 및 수도코드 제시

  • '게임으로 익히는 코딩 알고리즘'이라는 책 제목을 보았을 때, '게임 프로그래머' 직군과 관련된 책일 것이라고 생각했다. 같이 있던 프로그래머 직군 지인도 그렇게 보았으니 어쩌면 이건 북 디자이너가 노린 것일지도 모르겠다. 따지자면 거짓말은 아니지만, 우리가 기대했던 그런 것은 아니었다는 거다.

     

    20190707_143134.jpg

     

    '게임으로 익히는 코딩 알고리즘' 책은 코딩 알고리즘을 게임을 만들면서 단계적으로 익힐 것 같은 뉘앙스를 풍기는 제목이지만, '코딩 게임' 사이트에서 '코딩'을 하면서 '알고리즘'을 단계적으로 숙련시키는 내용의 책이다. 크게 보면 결국 게임 개발에도 '알고리즘'은 필요하니 이 책이 '게임 개발'로의 단계를 밟아줄 수는 있겠지만, 작게 보면 '알고리즘' 서적 중 하나일 뿐이다. 그러니 게임을 만들려고 이 책을 집어 든 '게임 개발자'들은 다른 책을 찾아보도록 하자.

     

    20190707_143206.jpg

     

    뒤표지에는 '나의 코드로 나의 레벨을 확인해보자'라고 쓰여 있는데, '코딩 게임' 사이트에서 코딩을 하면서 실력에 따라 레벨이 올라가니 이것도 틀린 말은 아니다. 파이썬 기반으로 되어 있으며, 이론을 마치고 응용 단계에서 좀 더 응용력을 키우고 싶다면 이 책은 충분히 도움이 된다. 물론 난 기획자고 프로그래밍을 공부하지만 프로그래머는 아니다.

     

    20190707_143346.jpg

     

    그러니 이런 사이트는 존재 유무도 몰랐다. 프로그래머 지인에게 물어보니 이곳 말고도 코딩 사이트는 많다고 한다. 다른 사이트들도 이렇게 화려한 그래픽과 함께 코딩 게임을 하는지는 잘 모르겠다. 연습 모드와 경쟁 모드가 있다는 것도 흥미롭다. (사실 한편으로는 이 책이 저 사이트의 광고 채널인가 싶기도 했다)

     

    20190707_143435.jpg

     

    그렇다. 이 책의 기반은 파이썬이다. 코딩 게임 사이트는 여러 가지 프로그래밍 언어를 제공하기 때문에 평소 사용하는 언어를 사용하여도 무방한데, 그 와중에 쉽고 이해하기 좋은 언어로 파이썬을 고른 것 같다.

     

    20190707_143505.jpg

     

    하지만. 이 책의 대상 독자가 프로그래밍은 1도 모르는 지망생이나 입문 단계가 아니라, 기본 문법을 학습했지만 막상 코딩을 시작하려니 막연한 사람이라는 것을 기억해야 한다. 기본 문법을 알고 있는 사람에게 응용의 기회를 제공하는 것일 뿐, 생초보를 위한 것은 아니라는 것!

     

    코딩 게임 사이트의 홍보 채널 같기도 하고, 실제적으로는 게임 개발이 아닌 코딩 알고리즘을 배우는 책이지만, 낮은 단계의 알고리즘부터 시작해서 상위 단계의 알고리즘으로 이어나가며 순차적으로 응용력을 키울 수 있는 것은 좋아 보인다. 그리고 솔직히 이런 방법으로 공부하면 요즘 코딩 교육받는 아이들처럼 즐거운 마음으로 공부할 수 있을 것 같기는 하다. 필요에 의한 것도 좋지만 역시 재미있는 것을 이길 수는 없는 법이다.

     

    20190707_143837.jpg

     

    뒤에는 부록으로 먼저 취업한 프로그래머들 8~9명 정도의 인터뷰가 담겨 있다. 궁금하다면 책을 사서 읽어보자. 역시 이론보다는 이런 살아 있는(?) 이야기가 재미있는 법이다.

     

  • 요즘 알고리즘에 대해서 관심을 갖기 시작해서 이 책을 선택했습니다 대충훑어 보았을 때는 게임 시나리오 같은 것이나 게임 구현 관련 예를 섞어서 알고리즘을 설명하는 책 인 줄 알았는데요 읽다보니 진짜 알고리즘 게임에 대한 이야기 이더군요 알고리즘 미션을 코드로 풀면서 등급을 높여나가는 게임 사이트가 있는데요 이 사이트를 해설해주고 그 중에 저자가 설명하고 싶은 알고리즘을 사용하는 미션들을 선택해서 게임을 풀어가는 방법과 알고리즘을 해설해 주는 내용이었습니다 몰입이라는 개념에 대해서 세계적인 권위자인 미하이 칙센트 미하이가 쓴 "몰입"이란 책을 읽은 적이 있습니다 칙센트는 다양한 상황에서 몰입을 느껴보았던 사람들을 수배해서 인터뷰를 했고 그의 저서의 이름을 flow로 정했습니다 우리말로는 "몰입"이라고 번역된 flow는 사실 떠다니는... 흐르는... 이런 뜻이지요 몰입 속에 있는 사람들은 시간이 지나가는 것을 잊고 그 상황 속에 몸과 마음이 떠있고 흘러가는 느낌을 받았던 것입니다 그는 몰입에 이르는 방법도 설명했는데요 그것은 학습과 도전의 반복이었습니다 도전해서 성취할만한 과제를 수행하고 이것을 계기로 학습을 조금해서 성장한 다음 조금 더 어려운 과제에 도전 하고 조금 더 학습해 나가는 그런 방식입니다 이런 사이클이 잘 이루어지면 대상자는 몰입할 수 있다고 하는 군요 우리가 게임에 잘 빠져드는 이유는 여기에 있습니다 학습욕구가 생기는 도전과제가 난이도 별로 존재하기 때문이죠 이 책은 알고리즘 학습에 이런 방식으로 몰입할 수 있는 단초를 제공해주는 것 같습니다 다만 이미 알고리즘에 대해서 꽤 알고 있는 상황이라면 몰입이 힘들 수도 있습니다 왜냐하면... 몰입 사이클에서 학습이 빠지게 되거든요 (이 책은 책 서두에서도 밝히듯이 초보자들을 위해 작성 된 것 같더군요) 그러나 이 책을 통해서 알고리즘 게임에 적응해 본다면 알고리즘에 대해 경험이 있는 사람도 도움을 받을 수 있을 듯 합니다

  •  

    추천대상 : 처음 개발해보는 분들에게 효과가 있을듯
    기초지식필요 :  없음(개발하고자 하는 열정만 있어도됨)
    난이도 : 쉬움(의외로 영어사이트에서 압박을 받을수도있음)
    이동성 : 좋음.300페이지로 가볍고, IT서적으로서 대중교통에서 볼만한 북사이즈
    키워드: 코딩게임, 알고리즘, 수도코드, 계획을세우고 생각을 하며 그 이후에 코딩
     
    [본 리뷰는 출판사가 제공한 도서를 읽고 직접 작성하였습니다.]
     
    게임으로 익히는 코딩 알고리즘
    김영기 지음 | 한빛미디어 | 2019년 05월
     
     
    과학기술정보통신부는 2019년 업무계획에 DNA(Data, Network-AI) 전략을 발표 했다. 
    ICT분야의 혁신이 차세대 우리나라의 큰 전략임을 국가차원에서 밝히고 있습니다. 
     
    DATA, Network, AI(인공지능) 기반 지식으로 '알고리즘'은 IT인력에 필수 지식으로 인정하고 있습니다. 알고리즘에 대한 이해와 실무오래된 경험에서 나오는 응용력은  파급력이 있습니다. 
     
    알고리즘은 개발자에게는 당연 필수고, 개발은 아니여도 기획자, 사용자 역시 한번쯤은 익혀볼만한 주제입니다. 
     
    문제는 알고리즘, 자료구조 론 책들은 무겁다는 것이 함정입니다. 
    대부분 어려운 용어로 시작해서, 어렵게 끝이 나고, 코드가 들어가고, IDE 작업환경을 예시를 들다보니, 책이 두꺼워집니다.
     
    if 책이 시작이 어렵고 and 두껍고 and 무겁고 then
       책을 덮는다.
     
    최소한 이 책은 코딩게임이라는 사이트 사용법과 예시에 대한 충분한 설명으로 초보자라면 쉽게 다가갈수있게 구성되어있습니다. 
    파이썬3문법을 사용하고 있는 점도 좋습니다. 
    수도코드를 제공하고, 글쓴이가 배려하는 생각하게 만드는 문구에서 개발자의 시작을 잡을수있는 좋은 도서라고 생각이 들었습니다. 
    또하나의 이 책이 주는 효과는 
    개발자업무를 하다보면 영어로 된 문서, 매뉴얼을 읽고, 익혀야하할때가 많습니다. 
    이책에 코딩게임 사이트와 병행해서 보시면서, 개발관련 영어랑도 조금은 친숙해질수있었습니다. 

     

  • 2019.06.09.

    프로그램을 개발할수록, 코딩을 하면 할수록 (메모리 관리가)효율적이고 (반응속도 향상에) 효과적인 동작을 하기 위해서 알고리즘에 대한 공부가 필요해졌다. 그래서 관련 책을 찾다가 한빛미디어에서 출판된 책을 알게 됐다.

     

    1560427442081.jpg

     

     

     


    이번에 읽은 "게임으로 익히는 코딩 알고리즘" 에서는 "코딩게임"이라는 사이트를 이용해서 알고리즘을 공부하는 방법을 알려주고 있었다.


    알고리즘을 그냥 책으로 학습하면 이해하기 어렵거나 집중하기 어려운데 실제 게임으로 동작을 확인하니 더욱 학습의욕이 높아지는 것 같다. 그리고 책에서는 게임에서 풀어야할 문제들을 해결하기 위해서 단계적으로 접근하고 있는데 가장 좋은 것은 5번 이었다. 문제를 풀고 다시 생각하는 과정은 정말 중요한 것 같다.


    개발에 사용하는 언어는 파이썬이었는데 요즘 대세 언어이기도하고 사용하기도 쉬워서 빠른 학습에 더욱 도움이 되는 것 같다. 책은 초급자를 기준으로 작성했기때문에 기존 개발자는 좀 더 편안하게 진도를 나갈 수 있는 것 같다.


    알고리즘의 기초에 대한 설명이 책 초반부에 나온다. 이 부분에 대한 설명도 쉽게 잘 되어있었다. 책 뒤쪽부분은 취업에 성공란 선배들의 인터뷰가 있었다. 회사생활에 대한 이야기인데 취업준비생들은 읽어보는게 좋은 것 같다. (회사에 따라서 다른 환경일 수 있으니, 그걸 감안하고 읽어야한다) 그리고 다른 부록으로 수도코드가 있었다. 학교 다닐때 알고리즘책에서 대부분의 알고리즘을 수도코드(휴도코드)로 설명했는데 큰 맥락은 비슷한 것 같다.


    읽어보니 나는 쪼랩이니 공부를 더 해야겠다.


  • 제목부터 재미있었던 것 같다.

    게임으로 익히는 코딩 알고리즘!!!

     

    Algorithm.png

     

    알고리즘은 고리타분할 수도 있지만

    이제 IT에서 일을 시작하는 사람에게나

    일을 오래동안 해온 사람에게나

    항상 놓지 않고 관심을 가지며 생각해볼 좋은 소재라고 생각한다.

     

    그런 와중에 보게된 "게임으로 익히는 코딩 알고리즘"은

    초심자도 쉽게 접근해볼 수 있는 수준의 알고리즘부터

    점점 집중해서 심도있게 고민해봐야 하는 알고리즘까지

    넓은 범위에서 여러 알고리즘을 다루고 있어서 재미있었다.

     

    책을 읽긴 하지만, 그저 읽히는대로 읽는 것보다는

    문제를 실제로 풀어가면서

    내가 생각한 알고리즘과 책에서 설명하는 알고리즘이 맞는지

    어떻게 차이가 있는지를 비교해보면서 읽을 수 있었던 점이

    개인적으로는 좋았던 것 같다.

     

     

    궁금증을 해소하려는 유전자와

    문제 해결을 위한 근성,

    좀 더 나은 알고리즘을 구현하려는 것은

    모든 개발자가 가지는 공통점이겠지만

     

    어느 수준의 사람에게나

    이런 접근방식으로 이 책을 읽을 것을 추천해주고 싶다.

     

    내겐 알고리즘에 대해 가지고 있던 아쉬움을

    조금이나마 해소해주는 단비같은 책이었다.

     

  • 이번에 살펴볼 책은 한빛미디어에서 최근에 출간한 게임으로 익히는 코딩 알고리즘 이다.

     

    1560245030172.jpg

     

    개발자에게 알고리즘이란 어렵고 접하기 쉽지 않은 단어라고 생각된다.


    예전에는 알고리즘을 설명하는 책들을 보면 일단 두껍다. 그리고 텍스트(설명)가 너무 많고 길다.


    한마디로  정독하기에 많은 시간과 노력, 비용이 들었다.


    하지만 요즘 나오는 알고리즘 책들은 어렵지 않게 설명하기 위해 다양한 방식으로 구성하고 이야기를 전개한다.


    이번데 읽은 게임으로 익히는 코딩 알고리즘도 게임을 통해 문제를 해결하면서 필요한 알고리즘을 설명하면서 보다 쉽게 이해할 수 있도록 도와주고 있다.



    이 책을 읽기위해서는 두가지가 필요하다.


    먼저 코딩게임 사이트 계정과 코딩에 사용하는 언어인 파이썬을 알고 있어야 한다.


     

    코딩게임사이트에서는 꼭 파이썬이 아니여도 평소 사용하는 언어를 사용해서 문제해결을 할 수 있다. 그래도 파이썬을 알고 있다면 좀 더 이해하는데 도움이 된다. 


    코딩게임 사이트 www.codingame.com


    가입 후 책을 참고 하면서 주어진 문제를 해결하고 다음 단계로 넘어가는 형식으로 진행된다.


    사이트에서는 영어로 문제가 나오지만 책에서 해당 문제에 대한 설명과 풀이 방법, 그리고 풀이에 필요한 자료구조, 알고리즘을 하나씩 설명하고 있어서 어렵지 않고 문제를 해결 할 수 있다.


    책 구성은 각 단계별 제시하는 문제와 해결방법을 설명하고 있다. 그리고 해결방법에 필요한 자료구조와 알고리즘을 쉽게 이해할 수 있도록 그림이나 순서도 등을 활용하고 있다.

     

    20190611_185300.jpg


    그리고 코드에 대해 자세하게 설명하고 있어서 단순히 제시된 코드를 따라하고 결과를 확인하는게 아니라 설명들을 통해 왜 이렇게 코드를 작성하고 문제를 해결하는지에 대해 이해 할 수 있어 학습에 효과적이다.

    부록으로 개발자 인터뷰가 수록되어 있는데 실제 취업 인터뷰에서 나오는 질문이나 필요한 기술들을 미리 알 수 있는데 요즘 개발 업체들이 원한는 코딩(기술) 인터뷰를 준비하는데 도움이 된다.


    게임으로 익히는 코딩 알고리즘은 요즈음 나오는 알고리즘 책들 처럼 알고리즘이라는 어려운 내용을 쉽게 접할 수 있도록 게임 코딩이라는 재미와 그림을 통한 설명과 도식화를 통해 보다 이해하는데 도움을 주고자 하는 저자의 의도를 읽을 수 있었다.

     

    그리고 다른 책에서는 찾을 수 없는 개발자 선배들의 취업 인터뷰가 있어서 취업을 앞둔 신입 개발자나 다음 단계로 넘어가려는 개발자들에게도 인터뷰에 대한 두려움을 해소 해주고 도움이 될거라 본다.

  • 코딩테스트를 아는가? 프로그래머로 취업 전선에 뛰어든 많은 이들을 떨게?하는 것 중 하나가 바로 코딩테스트 이다. 필자는 프로그래머는 아니다. 그러나, 학부때의 전공과 달리 대학원 석,박사 과정을 컴퓨터과학 분야로 진학하면서, 코딩 테스트를 경험해 본적이 있다. 기억나는 테스트 문제는 병합정렬 알고리즘을 이용해 주어진 데이터를 정렬 하는 것이었다. 운좋게도 겨우 넘겼지만, 조금 더 복잡했다면 테스트에서 떨어졌을지도 모른다.

    만약 여러분이 희망하는 직업이 개발자가 아니라도 프로그래밍 능력이 필요한 직군에 지원한다면, 기본적인 프로그래밍 개념과 고급 자료구조 알고리즘까지는 알아두기를 권한다. 그러나 이건 분명 어려운 것이다. 기본 정렬알고리즘까지는 어떻게 하더라도, 최단경로, 너비우선탐색 등이 나오면 아득히 정신이 멀어지는 경험을 할 수 있다. 개인적으로 이런 알고리즘 공부의 어려운 점은 프로그램 처리 과정을 눈으로 볼 수 없다는 것이다. 알고리즘 이란 이름으로 일부 과정을 추상화된 글이나, 의사코드 등으로 나타내지만 눈으로 값의 변화를 모두 따라가기는 어렵다. 이 책 <게임으로 익히는 코딩 알고리즘>의 가치는 여기서 나타난다. 하나씩 게임을 풀다보면 변수에 담긴 값의 변화가 눈에 보이고, 콘트롤 플로우도 보이게 된다. 여기에 게임이 주는 흥미 요소가 가미 되어 학습이 아닌 놀이로 느껴지는 착각?이 일어난다. 물론 후반부로 갈 수록 머리가 아파오지만, 기존의 알고리즘 문제플이 문항에 비해서 엄청나게 흥미가 있다는 것은 장담한다.

  • [포맷변환]S600IMG_1656.png

     

    우리가 일반적으로 배우는 알고리즘은 사실 계륵과 같은 존재라 할 수도 있다. 실제 프로그래밍에 있어, 꼭 사용된다고 말하긴 힘들고, 이미 많은 것들이 사용하기 편하게 라이브러리 형태로 제공되어 힘들여 코딩할 필요가 없기 때문이다.

     

    그런데도 학교 수업이나 회사 취업에서 알고리즘을 무척 중요시하는 것은 개발자의 필수 능력이라 할 수 있는 문제 분석 능력을 알고리즘을 통해 알아볼 수 있어 서다.

    실제 프로그램 현장에서는 책에는 전혀 나오지 않는 아주 다양한 문제들을 접하게 되는데, 대부분 개발자 혼자서 해결해야 하는 경우가 많다.

    그렇기 때문에 각종 프로그램 개발사들은 사원을 뽑을 때, 어떤 문제를 스스로 해결할 수 있는 능력이 있는지 없는지를 판단하기 위한 방법으로 알고리즘 테스트를 하는 것이다. 

     

    그런데 솔직히 알고리즘 공부는 재미없고 지루하다. 특히 책 잘못 선택하면, 알고리즘이란 단어만 들어도 알레르기가 생길 거 같은 거부감까지 생긴다. 속도와 효율을 따지는 알고리즘인데, 알고리즘 공부는 정반대인 경우가 많다. 

     

     

    [포맷변환]S600IMG_1657.png

    하지만 '게임으로 익히는 코딩 알고리즘'은 좀 다르다. 사전식 알고리즘 책이 절대 아니다. 이 책은 재미도 있고, 진도도 빠르게 나간다. 코딩게임 www.codingame.com 사이트에 있는 알고리즘 문제를 통해 파이썬도 배우고, 주요 알고리즘을 체계적으로 익힐 수 있는 책이다. 

     

    워낙 알고리즘 책이 재미없는 게 많다 보니, 처음엔 큰 기대하지 않고 봤는데, 이 책은 이상하게도 한번 책을 들면, 빨려 들어가는 느낌으로 계속 읽게 되었다. 그만큼 재미적 요소를 가진 책인 것이다.

     

     

    [포맷변환]S600IMG_1660.png 

    우선 코딩게임 사이트에 있는 알고리즘 문제를 주제로 자세한 설명을 하고 있다 보니, 알고리즘을 배운다는 느낌보다는 게임 미션을 수행하는 기분이 더 든다. 학습 부담이 그만큼 적고, 편한 마음으로 책을 볼 수 있다는 것이다. 

     

    그리고 알고리즘 문제를 풀고 바로 정답을 알려주는 것이 아니라, 떠오르는 데로 해결 방법을 1차적으로 코딩을 해본 뒤, 실행시켜보고, 문제가 발생되면, 무엇을 잘못했는지 확인하고, 다시 수정해서 문제를 해결하는 과정이 일반 프로그램 개발 과정과 같다. 게다가 문제 해결로 끝나는 것이 아니라, 효율이나 더 좋은 방법을 고민하는 코드 최적화 과정이 있어, 더욱 실제 코딩 과정과 아주 유사하다 말할 수 있다. 

     

    책에는 이러한 과정을 문제 설명, 어떻게 풀까요?, 필요한 알고리즘은?, 풀어 봅시다, 더 생각해 봅시다, 5 단계로 나눠 구성하고 있다.

      

    보통은 알고리즘을 공부하다 보면, 이거 어따 써먹나 생각하게 되는데, 이 책에는 최단 거리 우주선 공격이나, 주식 팔기, 카드게임, 폭탄찾기, 롤러코스터 매출 계산과 같이 게임이나 실제로도 사용될 가능성이 있는 현실성 있는 문제들이 나와서 실제 개발 과제를 받은 것과 같은 느낌을 받게 한다. 아직 개발을 경험하지 않은 초보 프로그래머에게는 아주 좋은 현장 체험의 시간이 될 수 있다. 

     

    책 내용은 뒤로 갈수록 어렵다. 그만큼 설명도 더 많아지고, 여러 가지로 코딩에 대한 고민도 많이 한다. 각 과정별 코딩 결과는 부록에 모여 있는데, 코드를 다 적지는 않고, 일부는 글로 풀어써 놨다. 무조건 베껴 쓰지 말고, 조금이라도 생각하라는 저자의 노파심이 엿보이는 부분이다.

      

     

    [포맷변환]S600IMG_1661.png 

    부록에 또 한가지 있는 건, 개발사에서 일하거나 회사를 운영하는 개발자 선배들의 취업 조언이 담겨 있는데, 이것을 읽어보면, 왜 알고리즘을 배우고 익혀야 하는지, 어떻게 쓰이게 될지, 취업 시 어떤 테스트를 하는지, 확실히 알게 될 것이다. 알고리즘 책에서 취업 얘기를 보게 되리라고는 전혀 예상 못했는데, 프로그래머를 꿈꾸는 취업 준비생에게 입사시험이나 면접 준비에 딱 좋은 내용이다.

      

    '게임으로 익히는 코딩 알고리즘' 참 재미있게 봤다. 알고리즘 책을 가끔씩 보고 있는데, 본 것 중에서 가장 실전적인 책이라 생각한다. 코딩 시, 문제 해결 능력을 길러주는 좋은 책이다. 코딩에 관심 있거나,, 예비 개발자, 취준생에게 추천하고 싶은 책이다.

  • 처음 제목만 봤을때는 체스, 장기, 지뢰찾기 등등 전략 게임 속에서 알고리즘을 찾아가는 류의 이론서적인줄 알았다

    제목에 들어간 게임은 진짜 코딩게임이었다.


    요 책은 CodinGame이라는 사이트에서 15개의 프로그래밍 문제를 선정해 문제를 소개하고, 풀이 방법을 자세하게 설명해주는 책이다.부록으로 현직자분들의 인터뷰도 실려있다.


    이 책의 심장은 CodinGame이므로 이 사이트에 대해 조금 소개하자면, 아래와 같이 생겼다.


     

    제목 없음.png

    일반적인 알고리즘 문제 풀이 사이트들과 다르게 컴파일 결과를 시각적으로 보여준다. 게임이 동작하는 화면처럼 말이다.

    문제를 풀면 경험치도 올라가고, 업적도 열린다. 실시간으로 다른 사람들과 경쟁도 할 수 있다.

    보통 알고리즘이라 하면 딱딱하다는 인식이 있는데, 이렇게 게임처럼 만들어두니 문제푸는 재미가 더해지는 것 같다.

     

    KakaoTalk_20190608_203756373.jpg

     

    [문제 설명 → 개략적 풀이법 소개 → 필요한 프로그래밍 방법이나 알고리즘 소개 → 수도 코드 설명 → 보충 설명]

    순으로 설명이 진행된다.

     

    문제의 풀이 방법을 소개하는 부분은 집필한 작가님의 머릿속 사고의 흐름을 그대로 옮겨놓은 것처럼 절차에 따라 차근차근, 친절히 설명해준다. 이해를 돕는 시각적인 자료도 풍부하다. 최대한 쉽게 풀어 쓰려한 흔적이 느껴져서, 내용은 술술 읽힌다.

     

    문제만 풀이하는게 아니라 중간중간 스택, 큐, 이진탐색 등등... 필요한 자료구조나 알고리즘에 대한 설명도 함께 나온다.

     

     

    특정 개념을 설명하는데 페이지를 많이 소모하지 않기 때문에 이 책만으로 알고리즘 이론을 공부하는 데에는 무리가 있는 것 같고, 그냥 한번 읽어보면 좋은 책일듯 하다. 가장 기초적인 조건문부터, 다익스트라 알고리즘까지 설명해주는 개념의 스펙트럼이 넓다.

    CodinGame 기준으로 easy부터 hard까지 모든 문제를 다루기 때문에 챕터와 챕터사이 난이도의 간극이 크다.

     

    요새 한창 알고리즘 문제를 끙끙거리며 풀고있는 내 입장에서 보기에 알고리즘을 전혀 모르는 사람이 입문서로 보기엔 조금 어려워보이고, 약간이라도 자료구조와 알고리즘을 접해본적이 있는 사람이라면 도움이 많이 되는 책일듯하다.

     

    그리고 내용이 전반적으로 CodinGame이라는 서비스에 의존적이다보니 구입할거라면 일단 CodinGame에 가입해서 문제를 몇개 풀어보고 취향에 맞는지 한번 확인해보는걸 추천한다. 솔루션을 무한루프 안에 작성해야하는 등... 채점 방법이 일반적인 코딩 테스트 플랫폼이랑 좀 다르다.

     

    알고리즘을 게임과 접목해서 조금이라도 즐겁게 공부해보고 싶은 사람, 기본적인 프로그래밍 개념~필수적인 자료구조/알고리즘의 기초를 쭉 복습하고 정리해보고 싶은 사람에게 추천한다. 

  • 기본적인 프로그래밍 언어에 대한 기초(기본 문법)를 이수한 이후에 방향을 잡지 못하는 상황에서 방향을 제시해 줄 수 있는 서적이다.

     

    항상 후배 프로그래머들도 질문하는 부분인데, 다음으로 어떻게 진행해야 하느냐?

    이에 대한 대답으로 문제풀이, 자료구조, 알고리즘에 대한 공부를 조언하고 하는데, 

    이를 한번에 해결할 수 있는 코딩게임( https://www.codingame.com ) 사이트를 소개하며, 

    이 사이트를 쉽게 접근할 수 있도록 진행하고 있다.

     

    단순한 문제 풀이는 딱딱하고, 이해가 어려운데, 코딩게임 사이트를 활용함으로써 UI를 지원하며,

    문제 해결을 통해서 결과를 게임 화면등으로 구성되어 있어서, 흥미를 유발하고 있다.

     

     

  •  
     
     
     
    게임 알고리즘을 익히고 싶은 사람에게 최적의 책 [게임으로 익히는 코딩 알고리즘]!!
     
    여러분은 알고리즘 공부를 위해 어떤 방법을 쓰시나요?
    코딩 알고리즘 학습 사이트에서 연습을 하거나 어려운 알고리즘 책을 읽으면서 공부하시나요?
    저도 알고리즘 문제가 빽빽하게 나열되어 있는 책을 보곤 했었는데요.
     
    이 책을 알고나서부터 그럴 필요가 전혀 없겠다는 생각이 듭니다.
    물론 코딩게임이라는 사이트를 알았다면 혼자서 독학하는 것도 더 쉽게 할 수 있지 않았을까 하는 생각도 드네요.
     
    [코딩게임] 사이트에서는 게임을 하는 것처럼 코딩 알고리즘을 공부할 수 있습니다.
    제가 이 코딩게임 사이트가 정말 좋다라고 생각했던 이유가 어려운 알고리즘을 배우는데 게임만큼 좋은 방법이 없다는 생각 때문입니다.
     
    꽤 오래전에 저도 비슷한 생각을 하면서 알고리즘을 배울 때 게임로직을 적용하면 어떨까 생각을 하기도 했는데, 그걸 그대로 옮겨놓은 듯한 느낌이었습니다. 그래서 사실 굳이 책이 없어도 게임을 즐겨 하던 사람이라면 [코딩게임]사이트에 금방 익숙해지실 거라 생각합니다.
     
    하지만 사이트의 모든 내용이 영어로 되어 있고, 난 기초에 기초도 전혀 모르겠다 하시는 분은 이 `책 게임으로 익히는 코딩 알고리즘`을 사서 보시면 많은 도움이 되실꺼라 생각합니다.
     
    왜냐하면 이 책은 단순히 알고리즘만 가르쳐주는 것이 아니라, 디테일하게 사이트에 어떻게 접속하고 각 난이도마다 어떤 알고리즘을 써야 하는지 쉽게 한국어로 안내를 해주는 책이니까요!
    더불어 알고리즘뿐 아니라 IT에서 흔하게 쓰이는 유머같은 것도 설명을 해주고 있어 단순히 알고리즘만 배우는 딱딱한 서적들보다는 말랑말랑 한 느낌입니다.
    전문적으로 코딩을 하고 알고리즘을 익혀야 하는 분들에게는 어떨지 모르겠지만, 기존의 서적들이 너무 어려워서 배우기 힘들다 하시는 분들에게는 최고의 대용품이 되지 않을까 싶습니다.
     
    책의 마지막 부분에는 현직 대표님이나 먼저 공부하고 취업에 성공한 선배님들의 인터뷰 내용도 실려 있어 알고리즘 테스트 외에도 면접을 준비하는데 도움을 받을 수 있는 내용 또한 충실하게 포함되어 있습니다.
    저 역시도 취업에 대해 준비하던 시절이 있었는데, 그 때 이런 책이 있었다면 얼마나 좋았을까 하는 생각이 들 정도네요!
    생생한 현장경험에 대한 내용은 어디서 쉽게 얻을 수 없는 내용이기에 더 귀중한 내용이란 생각입니다~!
     
    혹시 나는 중급자 레벨인데 겉으로 보기에 이 책이 너무 초급자 내용만 포함하고 있는게 아닐까? 한다면 섭섭한 생각입니다!
    현직 개발자인 저도 쉽게 접근하기 어려운 문제들을 어떤 알고리즘을 써야 풀수 있는지 차근차근 설명해주는데 문제에 따라 어떤 알고리즘을 써야 하는가에 대해 쉽게 이해할 수 있게 설명이 되어 있어 책 내용을 이해하면서 따라하다보면 어느새 고급에 와있는 자신을 보시게 될꺼란 생각이 강하게 듭니다.
     
    특히 게임을 만들기를 원하는 취업준비생의 경우 실제 게임에 적용해볼 수 있는 수학적내용도 함께 다루고 있으니 최적인 것 같네요.
    조금 아쉽다면 알고리즘이라는 분야를 초보자도 이해할 수 있을 정도로 쉽게 설명하기위해 문제 하나 하나당 페이지수가 상당히 많은 분량을 차지하는 것 같아 많은 문제를 풀어보고 싶은 분에게는 조금 부족할 수 있겠다는 생각이 듭니다.
     
    그래도 이 책을 통해 충분히 연습한 후 [코딩게임]에서 좀 더 연습을 한다면 훌륭한 알고리즘 풀이 능력을 기를 수 있을꺼라 생각합니다.
     
    이 책 [게임으로 익히는 코딩 알고리즘]은 [링크]를 통해 구매가능합니다!
    지금까지 제 경험으로 봐서 코딩은 꾸준하게 하는 것 말고는 방법이 없는 것 같습니다.
     
    꾸준한 노력을 통해 취업뽀개기에 성공하시길 빌겠습니다!
     
    모두들 화이팅하세요!

  • 알고리즘은 이론을 공부하고, 문제는 많이 풀어 보았지만, 그래서 이 알고리즘이 실무에 어떻게 적용하는지에 대한 책은 별로 없는 듯 하다. 하지만, 이 '게임으로 익히는 코딩 알고리즘' 책은 실제 게임에 적용되어 있는 알고리즘에 대해 쉽게 설명되어 있다.

    각 장은 우선 게임이 어떠한 게임인지를 알려주고, 그 게임에 목적,규칙과 그 게임에 적용되어 있는 알고리즘의 문제, 입력, 출력이 어떠한지 알려준다. 그런 이후, 그 문제에 대한 접근을 어떻게 해야하는지를 상세히 설명해주고 있다. 설명하기 쉽게, 순서도와 그림이 들어가 있고, 소스로 풀어주며, 문제를 풀어가는 과정을 상세하게 보여주고 있다. 그리고 이 문제를 풀기 위해 어떠한 알고리즘을 이용해야 하는지, 그 알고리즘의 기법에 대해 상세하게 설명해준다.

    초/중급 개발자가 실무에 어떻게 적용되어 있고, 그 문제에 대한 접근 방법을 잘 알려주고는 있지만, 고급 알고리즘에 대한 내용은 적다. 마지막에 최단 경로 알고리즘이나 동적 프로그래밍에 대한 내용은 있지만, 조금 어려운 내용들은 없다. 그리고 파이썬 라이브러리를 이용하는 부분들은 거의 없는 듯 하다.

    알고리즘에 대한 기본과 문제를 풀어 가는 접근법을 공부하기에 좋은 책인 듯 하다. 요즘에 파이썬을 이용하는 알고리즘 책들이 조금씩 늘어가고 있는데, 그 중에 하나로 보인다.

  • 오늘 리뷰하고 싶은 책은 코딩 알고리즘 책이다.

    이 제목만 보았을 때는 알고리즘 전반에 관한 책이겠군 싶었는데, 수식어가 좀 특이하다.

    '게임으로 익히는' 이라니...

    어떻게 게임으로 익힐수 있을까 하는 호기심이 먼저 들었다.

     

    그리고, 책의 표지에 나온 취업과 관련된 이야기들..

    내가 시간날 때 종종 하던 codesignal과 같은 사이트를 이야기 하는 것인가 하는 생각이 들었는데.

    책을 펼쳐보니 맞았다. 그래도 내가 접해보지 못했던 사이트를 기반으로 하였다.

    codingame.com 이라는 사이트로 코딩 알고리즘을 익히고, 그것을 통해 어떻게 문제해결능력을 향상시킬 수 있는지에 대한 내용을 설명한 책이다.

     

    원색적인 표지가 눈에 확 튄다.

     

    표지에는 그림이 없이, 이 책에서 강조하고 싶은 포인트만 담았다.

    현재는 괜찮겠지만, 나중에는 좀 올드해보이지 않을까 하는 우려가 된다.

     

    정보들

     

    초판발행 2019년 5월 6일자 따끈한 책이다.(5월 중순 이후에 배송받았으니..)

    부제로 '취업, 이직, 승진 준비생들을 위한 알고리즘 기본 + 코딩 테스트 트레이닝 북' 이라고 되어있다.

    코딩테스트 연습을 위해 사이트에서 문제풀이를 하려고 하는데, 가이드가 되어줄 책으로 보인다.

     

    책을 쓴 지은이의 취지가 나온다

     

    중요한 한마디가 있어서 발췌를 했다. "공부를 위한 코딩이 아닌 즐거움을 위한 코딩의 세계에 함께 빠져들기를 바랍니다."

    그저 코딩게임이라는 사이트에서 문제풀이를 하는데, 이것을 함께 즐기고 싶은 마음에서 책을 쓰게 되었다는 것이다. 이 내용을 보니... 책 쓰는게 엄청나게 대단한 결심보다, 다른사람에게 무엇을 함께하고 나눠줄 수 있을까 하는 작은 마음에서 시작하는구나 하고 깨닫게 되었다.

     

    책의 큰 구성에 대한 설명이다

     

    책은 문제를 중심으로 해결하는 과정을 담았기 때문에, 한 문제를 해결할 때마다 이러한 방법으로 구성했다고 설명하고 있다.

    1) 문제 설명

    2) 어떻게 풀까 제시

    3) 필요한 알고리즘을 소개

    4) 풀어보는 과정에 대한 이야기(완전한 정답공개는 별도로 수록하여 스스로 풀 수 있도록 유도)

    5) 더 생각해볼 내용이 있다면 이야기해 줌

    이 중 특히 네번째 항목이 눈에 띄었는데, 이런 코딩 사이트가 그렇듯 정답이 하나가 아닌것에 유념한듯하다. 그래서 정답을 적기보다는, 각자의 해석에 따라 다른 답을 찾아가기를 원해서 이런 구성을 한 듯 한데, 처음에는 답답했지만, 해결하는 즐거움을 독자도 누릴 수 있도록 배려했다는 것을 느끼게 되었다.

     

    목차 일부

     

    목차는 크게 문제의 해결에 초점을 맞추었기 때문에, 당연히 문제 중심으로 되어있다.

    챕터 구성은 다음과 같다.

    CH 1. 알고리즘 시작하기

    CH 2. 코딩게임 살펴보기

    CH 3. THE DESCENT

    CH 4. TEMPERATURES

    CH 5. CHUCK NORRIS

    CH 6. STOCK EXCHANGE LOSSES

    CH 7. THERE IS NO SPOON

    CH 8. WAR

    CH 9. SCRABBLE

    CH10. SHADOWS OF THE KNIGHT

    CH11. THE GIFT

    CH12. DWARFS STANDING ON THE SHOULDERS OF GIANTS

    CH13.SKYNET REVOLUTION

    CH14. TAN NETWORK

    CH15. ROLLER COASTER

     

    1부터는 초급, 6부터는 중급, 14부터는 고급문제로 분류하였다.

     

    첫 문제를 풀기 전에 나오는 설명 일부

     

    첫 문제 풀기 전에 알고리즘 문제 해결의 기본적인 요소에 대해 다뤘다.

    BigO에 대한 설명이 중요한데, 사실 알고리즘을 이제 처음 다뤄본다면 이런 개념을 잘 모를 수 있기 때문이다.

    실제로 이런 코딩 사이트에서는 example 중에 상당히 많은 element들, 혹은 큰 수를 input값으로 넣게 되어있는 경우도 있다.

    그렇다보면 timeout이 발생할 수 있기 때문에, 발생하지 않도록 효율적인 알고리즘을 작성하는 것이 중요하다.

    BigO의 cost가 어떻게 되는지, 생각하면서 코딩할 수 있어야 한다.

     

    첫 문제에 대한 해결 내용

     

    첫 문제에 대해서 해결하다보니 매우 답이 단순하다. 아마도 다른 해결 방법이라 해도 크게 다르지는 않을 것이다.

    아마도 너무 어려워서 지레 겁먹지 않도록 도움을 주는 문제인듯 보인다.

    하지만, 이러한 쉬운 문제라고 설명을 대충하지 않고, 친절하게 설명한 것이 엿보인다.(약 10페이지를 할애!)

     

    순서도를 첨부한 문제

     

    사실 순서도는 알고리즘 문제를 해결하는 과정에서 매우 중요하다. 앞서 설명한 매우 쉬운 문제를 제외하고서, 어려운 문제일수록 이러한 순서도를 작성하지 않으면 코드가 산으로 갈 가능성이 높다. 나 역시도 알고리즘코딩 사이트에서 문제를 해결하는 과정에서, 혹은 업무에서 알고리즘을 반영하는 과정에서 반드시 순서도를 작성한다. 그러면 생각하고난 뒤에 코드 작성시에는 그렇게 많은 생각이 필요없이 술술 작성할 수 있기 때문이다.

    이러한 연습이 실무에서도 도움이 되는 것을 알기 때문에 필요한 과정이라는데에 나 역시 동의한다.

     

    끝 페이지의 인터뷰 부록

     

    부록으로 각 현업 개발자들의 인터뷰 내용을 담았다. 주로 채용시의 프로세스, 코딩테스트의 중요도 등에 대해 인터뷰를 하였다. 이 문제를 풀어가는게 얼마나 중요한지 알게 하려는 것이다. 볼펜을 팔려면, 펜이 없는 사람에게 사인을 요청한다는 이야기처럼, 이 책을 읽어야 할 당위성을 이 책의 부록을 통해 설명하였다. 대단하다!

    실제로도 나 역시 중요하다고 생각하던터라 이 인터뷰 내용들이 그저 허울좋은 이야기가 아닌것임을 인정한다.

     

    뒷 표지

     

    여러 코딩 사이트가 있으나, 이 책은 코딩게임이라는 사이트로, 게임에 좀 더 포커스를 맞춘 사이트이다.

    그래서 재밌는것은 레벨이 있다(물론 다른 사이트도 레벨이 존재하긴 한다.)

    그래서 이 책을 통해 어느정도 학습 능력을 키운 뒤, 이 밖에도 많은 문제를 접하면서 레벨을 올리고, 그것을 향후에 취업이나 이직시 언급하는것도 능력을 어필하는 괜찮은 방법이 될 수 있겠다는 생각이 들었다.

    어차피 아이디를 공개하면 그 당사자의 코드들을 채용담당자가 조회할 수 있으니, 깃헙 못지않은 코딩 능력을 알 수 있는 또 하나의 척도가 되지 않을까 싶다. 또한 게임에 대해서만 해당될 것 같다고 생각할 수 있으나, 게임에 국한되지는 않는다. 게임이라는것은 하나의 material일 뿐, 그 안에서 문제를 해결하는 능력이 중요한 것이기 때문이다. 문제 또한 영어로 되어있기 때문에, 영어로 된 문제를 읽고 해결하는 능력 또한 알 수 있는 좋은 척도가 된다고 생각한다.

     

    사실 이런 코딩사이트를 주제로 책을 본 것은 처음인 것 같다. 신선한 소재라고 생각이 들어서, 흥미로웠다.

     

    이 책을 추천하는 사람은 다음과 같다.

    - 취업, 이직, 승진을 앞두고 있는 개발자

    - 알고리즘 코딩사이트에 흥미를 두고싶은 개발자 혹은 학생 등

     

    장점으로는

    - 새로운 소재를 이용한 책

    - 컬러로 구성하여 눈이 즐거움

    - 문제 풀이 과정을 의식의 흐름에 맞추어 진행

     

    아쉬운 점으로는

    - 표지디자인의 단순함

    - 구성이 설명식으로 되어있어 조금은 정신없는 느낌

     

    나는 이 책을 다음과 같이 평가해 본다.

    - 가격: 9/10

    - 내용: 8/10

    - 디자인: 7/10

    - 구성: 7/10

     

    가격: 22,000원

    전체 페이지: 311페이지

     

    ※ 이 리뷰는 '한빛미디어'로부터 도서를 제공받아 작성하였습니다.

  • 학부에서 다루는 알고리즘 책들은 딱딱하고

    기존 알고리즘 문제 해결을 다루는 책들도 그랬다면

    이 책은 분명히 큰 도움이 될 겁니다.

     

    이 책의 친절한 설명과 함께 그리고

    코딩게임을 통해서 문제해결 능력을 키우고

    자료구조와 알고리즘 지식을 배우게 될 것입니다.

     

    이 책과 함께하는 시간과 노력이

    결코 헛되지 않을 것이라 생각됩니다.

  • 신입때도 1년차때도 2년차때도 항상 고민되는 부분중의 하나가 "알고리즘" 입니다.

    어떨땐 재밌지만 어떨땐 정말 재미없고 ... 어떻게 공부를 해야하고 어떻게 접해야할지 어려운게 "알고리즘"입니다.

     

    요즘은 대부분의 기업들의 문을 열기 위해서는 알고리즘 코딩테스트라는 관문을 통과해야하기 때문에 반 강제적으로 우리는 알고리즘을 공부하게됩니다.

     

    많은 강의들이 있지만 배운 자료구조를 어떻게 사용해야할지 어떻게 문제에 접목시켜야 될지 혼란스러운게 사실입니다.

    게임으로 익히는 코딩 알고리즘은 자료구조에 대한 설명보다는 해결해야 될 게임 문제를 설명하고 게임 룰을 바탕으로 자료구조를 접목시키는 것을 보여줍니다.

     

    우리가 평소에 접했던 게임이 어떻게 동작하는지에 대한 궁금함이 있었다면 좀 더 재밌게 학습 할 수 있을 것 같습니다.

  • KakaoTalk_20190605_155349821.jpg

    제목만 봐도 게임 만들 때 필요한 알고리즘을 배우는 책

     

    책의 난이도는 컴퓨터공학과의 자료구조 수업 정도라고 생각하시면 됩니다.

    책의 앞부분에서 대상 독자를 다음과 같이 적어두었습니다.

    - 프로그래밍 언어의 기본 문법은 학습하였지만 막상 코딩을 시작하려니 막막한 사람

    - 힘겹게 취직은 했지만 아는 것보다 모르는 것이 더 많은 초보 개발자

    - 업무를 진행할 때마다 많은 시행착오로 인해 업무 처리가 버거운 사람

     

    여기에 한 가지 더 붙여보자면,

    자료구조, 알고리즘 이론은 대강 알고 있지만 프로그래밍에 어떻게 적용되는지 모르는 사람

    을 대상으로 하고 있다고 보시면 되겠습니다.

     

    학교 자료구조 수업에서 스택과 힙, 이진탐색트리 등등을 배웠지만 어떻게 구현하는지 막막했습니다.

    인터넷 검색을 통해 예제를 보더라도 다른 프로그램에 어떻게 적용시켜야 하는지도 잘 몰랐습니다.

    이러한 부분은 저의 프로그래밍 구현 능력 부족인 것도 있겠지만,

    단순히 이론 설명만 하고 넘어가는 수업이 답답했습니다.

     

    이 책에서는 코딩게임(www.codinggame.com)이라는 사이트를 통해 직접 구현해볼 수 있도록 해줍니다.

    어찌보면은 사이트 홍보용 책이라고 볼 수도 있겠습니다.

     

    제목 없음.jpg

     

    이 책에서 가장 마음에 드는 부분입니다.

    알고리즘 이론들이 실제 게임에서 어떤 식으로 적용되며 어떻게 사용하는지를 보여준다는 점!

     

    처음에는 코드의 일부분만 나와있기에 헷갈릴 수 있지만,

    책에서 차근차근 알려주는 대로 튜토리얼 1,2단계를 진행하고 나면 어떻게 하는지 금방 감을 잡을 수 있습니다.

     

    굳이 단점을 찾아보자면 책에서는 파이썬을 주 언어로 사용합니다.

    알고리즘을 공부하는 책이니 어떤 언어를 사용하던 상관은 없습니다.

    다만 게임이라는 타이틀을 걸고 나오는 책인데,  성능을 중요시하는 c++을 사용하지 않았다는게 마음에 걸렸습니다.

    하지만 이 책을 사서 공부하시는 분들이라면 충분히 파이썬 코드를 다른 언어로 변환시킬 수 있다고 생각합니다.

  • 소개

    프로그래밍을 직업으로 갖고 일하면서, 알고리즘은 개발자의 실력을 알아볼 있는 지표로 있다. 그렇기에 최근 IT기업에서는 알고리즘 테스트등을 하는 회사들이 많다.

    하지만 나와같은 초보개발자 그리고 비전공자에게 알고리즘이라는 단어자체가 매우 어렵고 또한 알고리즘적 사고가 잘되지 않는다고 느껴진다.

    이책은 제목처럼 ‘codingame.com’이라는 서비스를 통해 게임을 하며 알고리즘을 자연스럽게 익히는데 도움을 준다.

     

    gameLearningAlgorithms2.png

     

    장점

    게임을 통해 알고리즘을 자연스럽게 익힐 있고, 또한 해설을 통해 막힌 부분을 해소해준다.

     

    단점

    게임에 대한 해설이 이미 존재하므로 답을 보고 해설을 미리 보게 된다.

     

    후기

    요즘 알고리즘 책에서는 대부분 파이썬을 이용한 알고리즘을 익히는 부분이 단순 자바스크립트만을 사용하는 나와같은 프론트엔드개발자에게는 조금 이질적으로 느껴졌다.

    하지만 책을 읽으면서 이전에 잠시 익혔던 파이썬에 대한 기억이 살아났다. 또한 게임을 통해 자연스럽게 알고리즘을 익힌다는 자체가 흥미롭고 또한 재미있었다.

    그리고 직접 해보지는 않았지만 타인과 경쟁하는 부분도 있어 나보다 뛰어난 사람이 훨씬 많다는 점을 다시 깨달았다.

    재미있기 때문에 여러번 읽어 자연스럽게 알고리즘을 패턴처럼 습득 있는 충분한 요소가 존재 책이다.

  • 알고리즘을 익혀야먄 게임을 이길수 있네요.

    게임을 이겨 가다 보면 어느새 알고리즘 실력 이 쑥쑥 쌓여 있을것 같은 느낌이네요.

결재하기
• 문화비 소득공제 가능
• 배송료 : 0원배송료란?

배송료 안내

  • 책, 아이템 등 상품을 3만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
게임으로 익히는 코딩 알고리즘
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
게임으로 익히는 코딩 알고리즘
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
게임으로 익히는 코딩 알고리즘
구입처*
구입일*
부가기호*
부가기호 안내

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실