예스24
게임으로 익히는 코딩 알고리즘
한빛미디어
<김영기> 저
2019-05-31
대출가능 (보유:1, 대출:0)
<b>[개발자 레벨업 프로젝트] 개발자의 취직, 이직, 승진은 코드에 달려 있다!</br></br>날마다 조금씩 발전하는 자신을 위해 코딩 테스트를 하는 개발자. 개발사에 취업하려 하나요? 경력 관리를 위해 이직하려 하나요? 혹은 실력을 검증하고 발전시키고 싶나요? 프로그래밍 언어의 기본 문법은 학습하였지만 막상 코딩을 시작하려니 막막한 입문자, 힘겹게 취직은 했지만 아는 것보다 모르는 것이 더 많은 초보 개발자, 업무를 진행할 때마다 많은 시행착오로 인해 업무 처리가 버거운 개발자라면 꼭 이 책으로 도전해자!
코딩게임 레벨 35 / 닉네임 hard-coded
코딩게임의 모든 업적을 다 채우려다보니 평소에 쓰지도 않던 프로그래밍 언어를 공부하는 일이 어느새 새로운 취미가 되었다.
한글과컴퓨터에서 개발자의 삶을 시작하며 아래아한글을 개발했다. 그러다 어느 날 게임을 만들겠다며 회사를 뛰쳐나가 (주)블루사이드, 이노스파크, 비주얼 콘셉츠에서 [킹덤 언더 파이어 2], [드래곤프렌즈], [히어로스카이], [NBA 2K] 시리즈 등의 게임을 출시했다. 현재는 캐나다에서 새로운 도전을 위한 공부를 하며 취미로 새로운 언어를 익히고 있다.
코딩게임 프로필 : http://www.codingame.com/profile/bdb85491a5398d37cc726929a30b95231303091
PART 01 코딩게임 첫걸음 떼기</br>1. 알고리즘 시작하기 : 알고리즘은 무엇이고 왜 필요할까?</br>__1-1 컴퓨터 알고리즘</br>__1-2 알고리즘은 왜 필요할까?</br>__1-3 알고리즘은 어떻게 학습할까?</br>__1-4 알고리즘의 성능은 어떻게 표현할까?</br>2. 코딩게임 살펴보기 : 게임으로 배우는 알고리즘</br>__2-1 코딩게임이란?</br>__2-2 화면 구성 알아보기</br>__2-3 사용자 정보 보기</br>__3. THE DESCENT : 반복문으로 가장 높은 산을 파괴하라</br>__3-1 문제 설명</br>__3-2 어떻게 풀까요?</br>__3-3 필요한 알고리즘은?</br>____조건문</br>____최댓값 구하기</br>__3-4 풀어 봅시다</br>__3-5 더 생각해 봅시다</br>4. TEMPERATURES : 가장 낮은 절댓값을 찾아라</br>__4-1 문제 설명</br>__4-2 어떻게 풀까요?</br>____절댓값</br>__4-3 필요한 알고리즘은?</br>____반복문</br>____split의 용도</br>__4-4 풀어 봅시다</br>__4-5 더 생각해 봅시다</br>____배열</br>5. CHUCK NORRIS : 0만 가지고 2진수 표현하기</br>__5-1 문제 설명</br>__5-2 어떻게 풀까요?</br>__5-3 필요한 알고리즘은?</br>__10진수를 2진수로 변환하기</br>____인코딩하기</br>__5-4 풀어 봅시다</br>__5-5 더 생각해 봅시다</br>__2진수 변환</br>____문자열 슬라이스 기능</br>____비트 시프트 연산</br></br>PART 02. 문제 속에서 답을 찾는 실전 알고리즘</br>6. STOCK EXCHANGE LOSSES : 발끝에서 사서 머리에서 팔아라</br>__6-1 문제 설명</br>__6-2 어떻게 풀까요?</br>__6-3 필요한 알고리즘은?</br>____문제 분석 능력</br>__6-4 풀어 봅시다</br>__6-5 더 생각해 봅시다</br>____코드에 대한 이해도 높이기</br>____다른 방식으로 접근하기</br>7. THERE IS NO SPOON : 2차원 배열에서 좌표 찾기</br>__7-1 문제 설명</br>__7-2 어떻게 풀까요?</br>__7-3 필요한 알고리즘은?</br>____배열</br>__2차원 배열</br>____중첩 반복문</br>__7-4 풀어 봅시다</br>__7-5 더 생각해 봅시다</br>__2차원 배열</br>____시간 복잡도 O(n)</br>____중첩 반복문</br>8. WAR : 큐와 스택으로 벌이는 한판 게임</br>__8-1 문제 설명</br>__8-2 어떻게 풀까요?</br>__8-3 필요한 알고리즘은?</br>____큐</br>____스택</br>__8-4 풀어 봅시다</br>__8-5 더 생각해 봅시다</br>9. SCRABBLE : 해시맵으로 단어 만들기</br>__9-1 문제 설명</br>__9-2 어떻게 풀까요?</br>__9-3 풀어 봅시다-1</br>__9-4 필요한 알고리즘은?</br>____해시맵</br>__9-5 풀어 봅시다-2</br>____해시맵 풀이</br>__9-6 더 생각해 봅시다</br>____해시의 의미</br>____해시맵의 제약</br>10. SHADOWS OF THE KNIGHT : 폭탄의 위치를 찾는 가장 빠른 방법</br>__10-1 문제 설명</br>__10-2 어떻게 풀까요?</br>__10-3 필요한 알고리즘은?</br>____이진 탐색</br>____이진 탐색의 시간 복잡도</br>__10-4 풀어 봅시다</br>__10-5 더 생각해 봅시다</br>____M×N 배열에서 시간 복잡도</br>____이진 탐색의 전제 조건</br>11. THE GIFT : 돈을 나누는 가장 공평한 방식</br>__11-1 문제 설명</br>__11-2 어떻게 풀까요?</br>__11-3 필요한 알고리즘은?</br>____탐욕 알고리즘</br>____탐욕 알고리즘으로 최적의 해 찾기</br>__11-4 풀어 봅시다</br>__11-5 더 생각해 봅시다</br>____무차별 대입법 / 동적 프로그래밍</br>____외판원 문제</br>12. DWARFS STANDING ON THE SHOULDERS OF GIANTS : 재귀 함수를 사용해 트리의 높이 구하기</br>__12-1 문제 설명</br>__12-2 어떻게 풀까요?</br>__12-3 필요한 알고리즘은?</br>____그래프</br>____너비 우선 탐색과 깊이 우선 탐색</br>____재귀</br>__12-4 풀어 봅시다</br>__12-5 더 생각해 봅시다</br>____그래프와 트리</br>____단방향 그래프와 양방향 그래프</br>13. SKYNET REVOLUTION : I will be back to search</br>__13-1 문제 설명</br>__13-2 어떻게 풀까요?</br>__13-3 필요한 알고리즘은?</br>____그래프</br>____너비 우선 탐색</br>__13-4 풀어 봅시다</br>__13-5 더 생각해 봅시다</br>____깊이 우선 탐색과 최단 경로</br>____노드 간 이동 시간과 최단 거리</br></br>PART 03. 고급 퀴즈 해결하기</br>14. TAN NETWORK : 최단 경로를 알려드립니다</br>__14-1 문제 설명</br>__14-2 어떻게 풀까요?</br>__14-3 필요한 알고리즘은?</br>____다익스트라 알고리즘</br>__14-4 풀어 봅시다</br>__14-5 더 생각해 봅시다</br>____다익스트라 알고리즘 적용이 불가한 경우</br>____다익스트라 알고리즘의 단점</br>15. ROLLER COASTER : 최고의 롤러코스터 타이쿤 되기</br>__15-1 문제 설명</br>__15-2 어떻게 풀까요?</br>__15-3 풀어 봅시다-1</br>__15-4 필요한 알고리즘은?</br>____원형 큐</br>____동적 프로그래밍</br>__15-5 풀어 봅시다-2</br>__15-6 더 생각해 봅시다</br>____시간 초과 개선 방법</br></br>__부록 A. 먼저 취업한 선배들의 도움되는 Talk Talk</br>__부록 B. 프로그램 이해에 도움되는 수도코드