게임으로 익히는 코딩 알고리즘
[개발자 레벨업 프로젝트] 개발자의 취직, 이직, 승진은 코드에 달려 있다!
날마다 조금씩 발전하는 자신을 위해 코딩 테스트를 하는 개발자. 개발사에 취업하려 하나요? 경력 관리를 위해 이직하려 하나요? 혹은 실력을 검증하고 발전시키고 싶나요? 프로그래밍 언어의 기본 문법은 학습하였지만 막상 코딩을 시작하려니 막막한 입문자, 힘겹게 취직은 했지만 아는 것보다 모르는 것이 더 많은 초보 개발자, 업무를 진행할 때마다 많은 시행착오로 인해 업무 처리가 버거운 개발자라면 꼭 이 책으로 도전해자!
코딩게임 레벨 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. 프로그램 이해에 도움되는 수도코드