책 알고리즘 설명은 재미있고 자세하게 되어있습니다만, 탑코더 사이트 자체의 문제들은 직접 도전하는 건 생각보다 많은 시간을 투자해야 되네요! http://shuaiharry.blogspot.kr/2013/12/topcoder.html
프로그래밍 실력은 하루 아침에 완성되지 않는다
열정이 아닌 기초를 튼튼하게!
프로그래밍은 열정이 아닌 실력으로 해야 한다. 실력의 기초는 알고리즘이며, 프로그래머의 문제 해결력은 알고리즘에서 판가름 난다. 알고리즘 실력을 키우는 가장 좋은 방법은 다양한 문제를 풀어보며 알고리즘을 적용해보는 것이다.
알고리즘 트레이닝으로 완성하는 프로그래밍 실력
알고리즘을 많이 안다고, 다양한 프로그래밍 언어를 사용할 줄 안다고 해서 프로그래밍을 잘 하는 것이 아니다. 수학 공식을 많이 알아도 문제를 풀어보며 연습하지 않으면 안 되는 것처럼 프로그래밍도 연습을 통해 문제 해결력을 키워야 한다. 알고리즘 트레이닝은 알고리즘이나 언어 사용법이 아닌 문제 해결력을 키우기 위한 훈련법이다.
전 세계 프로그래머와 경쟁하는 탑코더
탑코더의 알고리즘 대회는 SRM(Single Round Match)으로 주 1회 개최되며, 전 세계의 프로그래머가 이 대회에 참여한다. 75분간 문제를 풀이하고, 15분간 다른 사람의 버그를 잡는 도전으로 이뤄진다. 다른 사람의 버그를 잡아서 점수를 얻을 수 있고, 반대로 다른 사람이 여러분이 작성한 코드에서 버그를 찾아 감점할 수도 있다. 이렇게 시합 결과에 따라 점수가 매겨지고 등급이 매겨진다. 여기서 최고 등급을 레드 코더(red coder)라 한다. 이 책은 전 세계 프로그래머와 경쟁하는 탑코더에서 레드 코더가 되는 길을 안내한다.
[01 | 프로그래밍 대회]
01_ 프로그래밍 대회
02_ 대회 참가의 장점
03_ 초보 프로그래머에게 좋은 프로그래밍 대회
[02 | TopCoder 참가 방법]
01 TopCoder 시스템
02 TopCoder 가입 방법
03 SRM 도전
04 SRM 참가 요령
[03 | 기본 프로그래밍 지식]
01 반드시 필요한 프로그래밍 지식
02 추가적인 프로그래밍 지식
03 정리
[04 | 시뮬레이션]
01 키위 주스
02 정리
[05 | 전체 탐색]
01 즐거운 파티
02 암호
03 재미있는 수학
04 회문
05 친구 수
06 다양한 형태의 전체 탐색
07 고장난 로봇
08 미로 만드는 사람
09 마법의 숫자
10 정리
[06 | 계산량]
01 실행 시간과 메모리 사용량 예측
02 정리
[07 | 동적 계획법과 메모화]
01 동적 계획법 기본
02 회사 조직과 급여
03 나쁜 이웃집 사람들
04 킹 나이트 체스
05 악수
06 정리
[08 | 탐색 범위 한정 알고리즘]
01 다양한 색상의 상자와 공
02 탐욕 알고리즘
03 주식 투자 시뮬레이션
04 배치 시스템
05 이분 탐색
06 자동차 대출
07 수학적 접근 방법
08 둥근 모양의 국가들
09 해밀턴 패스
10 정리
[09 | 응용 문제]
01 바이너리 플립
02 칸토어 먼지
03 Not Two
04 막대 자르기
05 무한 수열
06 바닥 타일
07 정리
[10 | 그래프 문제]
01 연결 판정
02 유향 그래프와 무향 그래프
03 가중 그래프
04 다익스트라 알고리즘
05 최소 신장 트리
06 변에 다양한 정보가 있는 그래프
07 정리
[11 | 수학 문제]
01 소수
02 최대공약수와 최소공배수
03 정리
조지 T. 하인만 , 게리 폴리케 , 스탠리 셀코
박상현
Programming Challenges: 알고리즘 트레이닝 북
스티븐 스키에나 , 미구엘 레비야