<개발자 레벨업 프로젝트> 개발자의 취직, 이직, 승진은 코드에 달려 있다!
날마다 조금씩 발전하는 자신을 위해 코딩 테스트를 하는 개발자.
개발사에 취업하려 하나요?
경력 관리를 위해 이직하려 하나요? 혹은 실력을 검증하고 발전시키고 싶나요?
프로그래밍 언어의 기본 문법은 학습하였지만 막상 코딩을 시작하려니 막막한 입문자, 힘겹게 취직은 했지만 아는 것보다 모르는 것이 더 많은 초보 개발자, 업무를 진행할 때마다 많은 시행착오로 인해 업무 처리가 버거운 개발자라면 꼭 이 책으로 도전해보세요!
누구를 위한 책인가요?
· 프로그래머 취업 준비생
· 이직 준비 중인 개발자
· 실력을 키우고자 하는 개발자
나의 코드로 나의 레벨을 확인해보자!
어제의 코드와 오늘의 코드는 달라야 합니다. 하지만 하루하루 나아지는 일은 생각보다 쉬운 일이 아닙니다. 그래서 게임 요소가 적용된 코딩게임 플랫폼(www.codingame.com)을 택했습니다. 게임하듯 즐겁게, 코딩 테스트를 할 수 있는 매력적인 플랫폼입니다. 레벨업 하면서 하루하루 나아지는 코드를 확인하며 교과서를 벗어나 살아 숨 쉬는 알고리즘을 만날 수 있습니다.
친구와 경쟁하고 저자와 경쟁하며 게임을 즐기듯 할 수 있는 코딩 테스트에 도전해보세요!
이 책의 특징
1. 탄탄한 학습 설계 : 3단계 난이도별 구분과 문제 분석부터 해결, 5단계 길잡이 풀이법까지 초보자도 따라할 수 있는 탄탄한 구성
2. 이론과 실전의 결합 : 알고리즘 이론서보다 쉬운 설명과 그에 걸맞는 문제가 있어 실전처럼 바로 문제에 활용
3. 사고의 확장 : 문제풀이에서 끝나지 않고, 꼬리에 꼬리를 물고 그이상의 해법을 함께 생각하도록 자극하는 코너(좀 더 생각해 봅시다) 제공
4. 코딩 테스트의 즐거움 : 시각적 재미가 가득한 게임 문제를 통해서 흥미를 잃지 않고 지속할 수 있는 코딩 테스트
추천사
"쉽고 재미있는데 유익한 프로그래밍 책이 존재한다고?" _리뷰어 서은택
이 책은 <코딩게임>이라는 프로그래밍 챌린지 사이트의 다양한 문제들을 엄선하여 난이도별로 차례로 설명해 주면서 독자의 실력이 차근차근 늘어가도록 구성되어 있습니다.
책의 구성이 잘 설계되어 있어 최소한의 프로그래밍 기초만 있다면 누구라도 책에서 설명하고 있는 내용을 따라가면서 문제들을 해결하는 기쁨을 맛볼 수 있습니다. 단순한 문제풀이 책이 아니라, 프로그래머라면 꼭 알아야 하는 다양한 자료구조와 알고리즘을 하나씩 차근차근 설명해 주기 때문에 알고리즘 학습을 위한 교재로도 손색이 없습니다. 웬만한 일반 알고리즘 책과 비교해 봐도 더 상세하고 잘 정리된 설명에 다양한 도표, 더불어 그 알고리즘을 직접 적용할 수 있는 문제가 함께 소개되기 때문에, 말하자면 이론과 실전이 제대로 결합되어 학습 효과를 극대화할 수 있는 구성입니다. 거기에 저자가 중간 중간에 넣어 놓은 다양한 읽을거리들은 프로그래밍과 관련한 상식을 키우는 데에도 도움을 줍니다.
<코딩게임> 사이트 또한 매우 흥미롭습니다. 다른 많은 프로그래밍 챌린지 사이트들은 프로그래밍 자체에 초점이 맞추어져 있기 때문에 처음 입문하는 사람들에게 재미를 느끼게 하기 어려운 반면, <코딩게임>은 프로그래밍 결과가 즉각적으로 표시되기에 프로그래밍의 즐거움을 훨씬 더 강하게 느끼게 해 줍니다. 혼자서 문제를 푸는 것뿐만 아니라 다른 사람과 경쟁하기도 하고 심지어는 실시간 프로그래밍 대결도 할 수 있어서 몰입해서 하다 보면 프로그래밍의 즐거움에 ‘중독’되는 진기한 경험도 해볼 수 있습니다. 그래서 이 책과 <코딩게임>을 잘 활용한다면 말 그대로 프로그래밍을 재미있게 배울 수 있다고 확신합니다. 저자가 <코딩게임> 사이트에서 활발히 활동하고 있기 때문에 저자와 직접 대결도 해 볼 수 있다는 것은 또 다른 즐거움이 아닐까요?
“실무라는 사막에서 길 잃은 개발자에게 지식과 지혜를 나눠주는 오아시스 같은 책” _리뷰어 최성현
이 책을 총 5번 읽었는데요,
한 번 읽었을 땐 컴퓨터 사이언스의 필수 알고리즘들을 배울 수 있었고,
두 번 읽었을 땐 파이썬이라는 프로그래밍 언어를 이해하게 되었고,
세 번 읽었을 땐 <코딩게임> 사이트에 대한 흥미를 느낄 수 있었고,
네 번 읽었을 땐 개발 경험이 풍부한 작가의 개발 철학을 엿볼 수 있었고,
마지막으로 읽었을 땐 주식은 하면 안 된다는 것을 느낄 수 있었습니다.
(06 STOCK EXCHANGE LOSSES 내용)
실무라는 사막에서 길을 잃은 개발자에게 지식과 지혜를 나눠주는
오아시스 같은 책이라고 단언합니다.
“쉽게 따라 하고 재미있게 도전해보면서 알고리즘과 논리적 사고를 키워주는 책” _리뷰어 김수영
개발자가 아니더라도 최근 파이썬 정도는 해야 한다는 분위기가 조성되고 있습니다. 특히 데이터 관련 작업을 하는 팀에서는 필수입니다. 하지만 혼자서 공부를 하다 보면 어느 정도까지 문법은 따라 할 수 있지만, 논리적인 코드를 작성하는 것은 어렵고 흥미를 잃기 쉽습니다. 이 책은 그런 사람들에게 쉽게 따라 하고 재미있게 도전해 보면서 실질적인 알고리즘과 논리적 사고를 키워줍니다. 이와 함께 파이썬 코딩에 대해 꼭 필요한 부분을 잘 짚어주고 있습니다.
“기초 알고리즘을 재미있고 쉽게 배울 수 있도록 도와주는 책” _리뷰어 이지호
개발자로서 18년을 일하면서 현장에서 알고리즘에 목마름을 느낄 때가 많았습니다. 아마도 대학 2~3학년 때 짧게 배우고 지나갔던 수학 과목들과 알고리즘을 다시 떠올리기 싫어서였던 것 같습니다. 저와 여러분이 이제 만나기 시작한 『게임으로 익히는 코딩 알고리즘』은 기초 알고리즘을 재미있고 쉽게 배울 수 있도록 도와줄 것입니다. 책을 봄에 있어 시간을 낸다고 생각하지 말고 조금씩 즐겨보세요. 그러다가 닥터 후가 언급되면 지나간 향수를 불러일으킬지도 모릅니다. 닥터 후 글자를 보면 바로 제나 콜먼이 생각날지도 모릅니다.
“쉬운 방법부터 최적화까지 스토리로 문제를 해설해주는 책” _리뷰어 문성훈
참 어렵고도 딱딱하기 쉬운 코딩과 알고리즘을 <코딩게임>이라는 사이트의 문제를 통해서 재미있는 소설을 읽는 것처럼 알려주는 점이 좋았습니다. 단순히 문제를 푸는 데 그치지 않고 쉬운 방법부터 최적화까지 스토리로 문제를 해설해 주고, 같이 고민하면서 쉽게 쉽게 읽을 수 있도록 만들어 줍니다. 처음 알고리즘에 입문하거나 알고리즘 사이트에서 아무리 문제를 풀어도 실력이 늘지 않는다고 느끼시는 분들에게 강력 추천해 드립니다.
“응용력을 키우고 싶을 때 진입장벽을 낮춰주는 좋은 가이드 북”_리뷰어 한미소
이 책은 코딩의 이론을 마치고 응용을 시작하는 단계에서 ‘<코딩게임>이라는 사이트를 통해 응용력을 키우고 싶다’라고 할 때 이 책이 진입장벽을 낮춰 주는 좋은 가이드 북이 될 것 같습니다. 개인적으로 ‘초급 문제 비중이 더 많았으면 어땠을까’하는 아쉬움은 있습니다. 왜냐면 그래도 초급은 좀 많이 따라 했거든요! 그리고 완료하면서 좀 재미있었습니다. 초급의 다른 문제들도 도전해보려고 합니다. 나중에 초급/중급/고급으로 아예 따로 내주세요
코딩게임 레벨 35 / 닉네임 hard-coded
코딩게임의 모든 업적을 다 채우려다보니 평소에 쓰지도 않던 프로그래밍 언어를 공부하는 일이 어느새 새로운 취미가 되었다.
한글과컴퓨터에서 개발자의 삶을 시작하며 아래아한글을 개발했다. 그러다 어느 날 게임을 만들겠다며 회사를 뛰쳐나가 (주)블루사이드, 이노스파크, 비주얼 콘셉츠에서 <킹덤 언더 파이어 2>, <드래곤프렌즈>, <히어로스카이>, <NBA 2K> 시리즈 등의 게임을 출시했다. 현재는 캐나다에서 새로운 도전을 위한 공부를 하며 취미로 새로운 언어를 익히고 있다.
코딩게임 프로필 : http://www.codingame.com/profile/bdb85491a5398d37cc726929a30b95231303091
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. 프로그램 이해에 도움되는 수도코드