이미 소장하고 있다면 판매해 보세요.
|
Chapter 00. 인트로(Intro)
- 이 책을 집필하며.. - 이렇게 공부하세요. - 온라인저지 오일러OJ https://euleroj.io - 유튜브 채널 오일러TV Chapter 01. 오일러 온라인 저지(오일러OJ) 01.1 오일러OJ 회원 가입하기 Euler Online Judge 01.2 로그인 후 소스 코드 제출하기 01.3 온라인 채점 시 정답으로 인정되지 않는 경우 01.4 온라인 채점 시 정답으로 인정되는 경우 01.5 본인이 제출한 소스 코드 확인하기 01.6 그 밖의 메뉴 소개하기 01.7 Open Challenge Chapter 02. C++에서의 입력과 출력 02.1 C++의 탄생 및 버전 02.2 C++에서의 입력 및 출력 Input & Output 02.3 필드 폭과 채우기 width & fill 02.4 유효 자릿수와 소수점 자릿수 precision & fixed 02.5 연습문제 Exercise 오일러OJ 2055 Long Multiplication Chapter 03. 이름 공간 namespace 03.1 이름 공간 namespace 03.2 이름 공간(namespace)의 분리 03.3 중첩된 이름 공간(namespace)과 별칭 지정 03.4 익명의 이름 공간 Anonymous namespace 03.5 using 지시문 03.6 using namespace std 03.7 연습문제 Exercise 오일러OJ 4392 로미오와 줄리엣 Chapter 04. 참과 거짓 bool 04.1 bool 자료형 true & false 04.2 입력 및 함수의 반환값 04.3 연습문제 Exercise 오일러OJ 3178 괄호 오일러OJ 4034 무한개의 객실을 갖춘 호텔 Chapter 05. 자료형 추론 auto 05.1 자료형 추론 auto 05.2 함수의 반환 자료형 추론 05.3 연습문제 Exercise 오일러OJ 4285 꿀벌 마야 Chapter 06. STL과 정렬 알고리즘 std::sort() 06.1 표준 템플릿 라이브러리(STL) Standard Template Library 06.2 알고리즘(Algorithm) 06.3 정렬 알고리즘 std::sort() 06.4 비교 함수를 만들어 정렬하기 06.5 람다 함수(Lambda Function)를 만들어 정렬하기 06.6 함수 객체(Function Object)를 이용해서 정렬하기 06.7 std::stable_sort() 06.8 std::is_sorted() 06.9 std::partial_sort() 06.10 std::nth_element() 06.11 연습문제 Exercise 오일러OJ 3015 키 오일러OJ 3034 질문과 답변 오일러OJ 3035 책꽂이 오일러OJ 3090 무도회 댄스 오일러OJ 3113 유행 Chapter 07. 요소를 수정하지 않는 순차 작업 Non-modifying Sequence Operations 07.1 std::find() 07.2 std::find_if() 07.3 std::count() 07.4 std::count_if() 07.5 std::equal() 07.6 연습문제 Exercise 오일러OJ 4085 오일러와 친척들 오일러OJ 5072 세 값의 정렬 Chapter 08. 범위 기반 for 루프 range-for loop 08.1 범위 기반 for 루프 range-for loop 08.2 std::for_each() 08.3 std::for_each_n() 08.4 std::transform() 08.5 연습문제 Exercise 오일러OJ 2124 체스판 만들기 Chapter 09. 요소를 수정하는 순차 작업 Modifying Sequence Operations 09.1 std::copy(), std::copy_backward(), std::copy_if(), std::copy_n() 09.2 std::fill(), std::fill_n() 09.3 std::generate(), std::generate_n() 09.4 std::swap(), std::swap_ranges() 09.5 std::remove(), std::remove_if(), std::remove_copy(), std::remove_copy_if() 09.6 std::replace(), std::replace_if(), std::replace_copy(), std::replace_copy_if() 09.7 std::rotate(), std::rotate_copy() 09.8 std::reverse(), std::reverse_copy() 09.9 std::unique(), std::unique_copy() 09.10 연습문제 Exercise 오일러OJ 3165 다섯 개의 나무 조각 Chapter 10. 최소/최대 작업 Minimum/Maximum Operations 10.1 std::min(), std:min_element() 10.2 std::max(), std:max_element() 10.3 연습문제 Exercise 오일러OJ 1160 색칠 공부 오일러OJ 5030 오일러의 블록 Chapter 11. string 컨테이너 11.1 컨테이너(container) 11.2 std::string 컨테이너 11.3 std::string 컨테이너와 포인터 11.4 std::string 요소 접근 11.5 std::string 컨테이너와 begin(), end() 11.6 std::string 컨테이너의 연산과 할당 11.7 std::string 컨테이너의 길이 및 용량 11.8 std::string 컨테이너의 삽입 및 삭제 11.9 std::string 컨테이너의 검색 및 추출 11.10 std::string 컨테이너의 복사 및 교환과 비교 11.11 std::string 컨테이너와 함수 11.12 연습문제 Exercise 오일러OJ 1053 문자열 길이 오일러OJ 1114 너무 긴 단어 오일러OJ 1057 문자열 소트 오일러OJ 1054 문자 찾기Ⅰ 오일러OJ 1055 문자 찾기Ⅱ 오일러OJ 1056 문자 찾기Ⅲ 오일러OJ 1058 콤마를 삽입하라! 오일러OJ 1092 잘못된 철자 오일러OJ 1079 대소문자 구분 오일러OJ 1064 왕국의 언어 오일러OJ 1060 KOIIOI Chapter 12. 기초테스트Ⅲ Training 12.1 기초테스트Ⅲ 오일러OJ 2018 No Brain 오일러OJ 2047 Palindrome 오일러OJ 2052 암호 해독Ⅰ 오일러OJ 2122 캠브리지 오일러OJ 2125 오일러TV 오일러OJ 2135 욕심쟁이 Chapter 13. pair 컨테이너 13.1 std::pair 컨테이너 13.2 std::pair 컨테이너와 정렬 13.3 연습문제 Exercise 오일러OJ 1090 Best 5 오일러OJ 2056 숫자 문자열 오일러OJ 3036 화성 여행 오일러OJ 3094 친척집 방문하기 Chapter 14. tuple 컨테이너 14.1 std::tuple 컨테이너 14.2 std::tuple 컨테이너와 정렬 14.3 연습문제 Exercise 오일러OJ 3037 마라톤 기록 오일러OJ 3112 장난감 쇼핑 오일러OJ 4306 왕국 선거 Chapter 15. stack 컨테이너 15.1 컨테이너 어댑터 container adapter 15.2 스택 stack 15.3 std::stack 컨테이너 stack container 15.4 연습문제 Exercise 오일러OJ 3016 도넛 가게Ⅰ 오일러OJ 3018 기차 교차로 오일러OJ 4056 레이저 절단 오일러OJ 4458 에디터 오일러OJ 5001 Bad Hair 오일러OJ 5014 삐까 오일러OJ 5266 City Skyline Chapter 16. queue 컨테이너 16.1 큐 queue 16.2 std::queue 컨테이너 queue container 16.3 연습문제 Exercise 오일러OJ 3017 도넛 가게Ⅱ 오일러OJ 3019 요세푸스(Josephus) 오일러OJ 4156 요세푸스의 사촌 오일러OJ 4208 전력 위기 오일러OJ 4232 보조금 지급 오일러OJ 5274 인터넷 차단 Chapter 17. 재귀 호출 Recursive Function Call 17.1 재귀 호출과 스택(Stack) 메모리 17.2 총합 구하기 17.3 팩토리얼 Factorial 17.4 최대공약수 Greatest Common Divisor 17.5 진법 변환 Base Conversion 17.6 연습문제 Exercise 오일러OJ 3006 N까지의 총합 오일러OJ 3007 진법 변환 Chapter 18. 메모이제이션 Memoization 18.1 피보나치 수열 Fibonacci Sequence 18.2 메모이제이션 Memoization 18.3 연습문제 Exercise 오일러OJ 3008 피보나치 수열 Chapter 19. 순열 Permutation 19.1 중복을 허용하는 순열 19.2 중복을 허용하지 않는 순열 19.3 연습문제 Exercise 오일러OJ 3009 아이스크림 나라 오일러OJ 3010 선착순 오일러OJ 3014 N자리 2진수 오일러OJ 3013 대회 결과 예상하기Ⅰ 오일러OJ 3068 지그재그 숫자 Chapter 20. 조합 Combination 20.1 중복을 허용하는 조합 20.2 중복을 허용하지 않는 조합 20.3 연습문제 Exercise 오일러OJ 3011 숫자 고르기 오일러OJ 3012 퀴디치 대회 오일러OJ 3067 Lotto 오일러OJ 3084 미지의 행성 탐사 오일러OJ 4005 부분 집합(Element) Chapter 21. 재귀 호출과 분기 한정 Branch and Bound 21.1 수의 덧셈 조합 21.2 개선된 수의 덧셈 조합 21.3 재귀 호출과 분기 한정 Branch and Bound 21.4 연습문제 Exercise 오일러OJ 3069 수의 덧셈 조합 오일러OJ 3070 부분집합의 합(Sum of Subsets Problem) 오일러OJ 3071 일곱 난쟁이 Chapter 22. 원순열 Circular Permutation 22.1 원순열 Circular Permutation 22.2 연습문제 Exercise 오일러OJ 3072 원탁회의 오일러OJ 3073 소수 고리 Chapter 23. 다음 순열과 이전 순열 Next Permutation & Prev Permutation 23.1 다음 순열 Next Permutation 23.2 STL과 다음 순열 STL & next_permutation 23.3 이전 순열 Prev Permutation 23.4 STL과 이전 순열 STL & prev_permutation 23.5 연습문제 Exercise 오일러OJ 3189 다음 순열 오일러OJ 3190 이전 순열 오일러OJ 3191 이웃하는 수 오일러OJ 3106 부저 모으기 Chapter 24. 요일 계산 Day of the Week 24.1 이집트의 태양력 Solar Calendar 24.2 율리우스력 Julius Calendar 24.3 그레고리력 Gregorian Calendar 24.4 요일 계산 Day of the Week 24.5 연습문제 Exercise 오일러OJ 2023 요일 계산 오일러OJ 2097 Time Cards 오일러OJ 4145 13일의 금요일 오일러OJ 4213 윤년과 축제년 오일러OJ 4360 카탈로그 넘버 Chapter 25. 동적 계획법 Dynamic Programming 25.1 동적 계획법 Dynamic Programming 25.2 Top-Down 방식 Memoization 25.3 Bottom-Up 방식 Tabulation 25.4 동적 계획법(Dyanmic Programming)의 특징 25.5 연습문제 Exercise 오일러OJ 3181 파도반 수열 오일러OJ 3180 더하기 오일러OJ 4111 1을 향해서 오일러OJ 4175 계단 수 오일러OJ 4177 오르막 수 오일러OJ 4017 마법 계단 오일러OJ 4132 오일러와 산신령 오일러OJ 4118 Tiling 오일러OJ 4152 서커스 공연 오일러OJ 4348 알파 코드 오일러OJ 4350 Rectangles 오일러OJ 4188 집으로 돌아가기 오일러OJ 3104 핀볼게임 오일러OJ 4228 금화를 포함한 파이 오일러OJ 4358 스티커 오일러OJ 5035 놀이판 오일러OJ 4316 강 건너기 오일러OJ 4256 점프하는 시민 오일러OJ 4506 마법 기차 오일러OJ 5032 Big House |
김선욱
오일러의 다른 상품
김건의 다른 상품
김성은의 다른 상품
|
① 알고리즘(Algorithm) : 정렬, 검색, 수정, 삭제, 연산 등을 해결할 수 있도록 제공해주는 함수 템플릿
② 컨테이너(Container) : 객체를 저장하는 컬렉션 ③ 반복자(Iterator) : 컨테이너 안의 요소를 가리키고, 가리킨 요소에 접근할 수 있도록 포인터와 비슷한 기능을 갖는 구성요소 ④ 함수 객체(Function Object) : 알고리즘이나 컨테이너에 클라이언트의 정책을 반영할 수 있도록 함수처럼 동작하는 객체 이러한 STL(Standard Template Library)의 구성 요소들은 하나의 부품처럼 서로 맞물려서 돌아가기 때문에 내가 STL(Standard Template Library)을 사용하여 편의를 갖고자 한다면 각각의 구성 요소들을 하나하나 공부해야 한다. 먼저 첫 번째 구성요소인 알고리즘을 소개한다. --- 「Chapter06 STL과 정렬 알고리즘 std::sort()」 중에서 컨테이너(container) 어댑터는 다른 컨테이너의 인터페이스를 변경해서 만든 컨테이너다. STL(Standard Template Library)에서는 컨테이너(container) 어댑터로 LIFO(Last In first Out)의 구조를 갖는 스택(stack)과 FIFO(First In First Out)의 구조를 갖는 큐(queue) 그리고 우선순위에 따라서 정렬해주는 우선순위 큐(priority_queue) 컨테이너를 제공해준다. --- 「Chapter15, stack 컨테이너」 중에서 메모이제이션(Memoization)은 1968년에 영국의 컴퓨터 과학자이고 인공 지능 분야의 연구원인 도널드 미치(Donald Michie) (1923 - 2007)에 의해서 네이처지에 ‘Memo functions and machine learning’라는 제목으로 처음 소개되었다. 이렇듯 메모이제이션(Memoization)은 컴퓨터 프로그램이 같은 함숫값을 반복해서 구해야 할 때, 이전에 계산한 값을 메모리에 저장함으로서 동일한 함수의 호출을 제거하여 프로그램의 속도를 빠르게 하는 기술이다. 뒤에서 다루게 될 동적 계획법(Dynamic Programming)에서 핵심이 되는 기술이므로 잘 숙지해 놓도록 하자. --- 「Chapter18, 메모이제이션 Memoization」 중에서 동적 계획법(Dynamic Programming)은 미국의 응용 수학자 리처드 어니스트 벨만(Richard Ernest Bellman, 1920 - 1984)이 1953년에 고안한 방법이다. 벨만은 큰 문제 안에서 작은 문제가 중첩하는 "다단계 응용 프로세스" 수학 연구를 하고 있었는데 이것을 다른 사람들이 알지 못하게 하기 위해서 프로세스(Process) 대신 프로그래밍(Programming)이라는 단어를 붙였고 프로세스가 시간이 지남에 따라 변하기 때문에 동적(Dynamic)이라는 단어를 추가하여 지금의 동적 계획법(Dynamic Programming)이 되었다. --- 「Chapter 25, 방향 검색 동적 계획법 Dynamic Programming」 중에서 |
|
코딩마법서 C/C++ 3권 BRONZE는 2권 IRON 이후의 다음 버전의 책입니다. 코딩마법서 시리즈는 코딩테스트와 알고리즘을 위한 기초과정부터 고급과정까지 진행하는 시리즈 교재입니다. 이번 책은 최종 목표 6권 중에서 3번째 책에 해당하는 BRONZE 버전입니다. 1권에서는 일차원 배열과 기초 자료구조와 알고리즘을 진행하였고, 2권에서는 다차원 배열, 함수, 포인터 그리고 또다시 기초 알고리즘과 자료구조를 진행하였습니다. 3권에서는 이제부터는 본격적으로 C++로 넘어와 C++에서의 입력과 출력 그리고 STL을 소개하면서 정렬, string, pair, tuple, 스택(Stack), 큐(Queue), 재귀 호출(Recursive Function Call), 동적 계획법(Dynamic Programming)을 만나게 됩니다. 이 책은 1, 2권을 학습한 사람이거나 또는 과거에 학습한 내용을 복습하고자 하는 사람에게 추천합니다. 이제 1권, 2권, 3권을 학습했다면 코딩대회에 나가기 위한 기본 과정은 어느 정도 준비되었다고 할 수 있습니다.
여러 질문 중에 이 책은 "C언어인가?" 아니면 "C++인가?"라는 질문이 있는데 1권 STONE과 2권 IRON은 입출력만 C언어이고 나머지 모든 문법은 C++을 따릅니다. 그리고 3권 BRONZE부터는 C++에서만 지원하는 STL(Standard Template Library)을 사용하기 때문에 입력과 출력도 C++ 문법을 따르고 있습니다. 또한 코딩마법서는 오일러TV에서는 동영상 강의를 제공하고 오일러OJ(OJ, Online Judge)에서는 학습 문제를 제공하기 때문에 학습과 재미 두 마리 토끼를 모두 잡을 수 있습니다. 앞으로도 오일러BOOKS는 좋은 교재를 선보이도록 하겠습니다. 많은 성원과 응원 부탁드립니다. Why 코딩의 목적 과거에는 경력이 많은 사람이 대우를 받던 시대가 있었습니다. 지금은 과거와 다르게 컴퓨터 과학의 발전 속도가 지수 곡선을 그리며 빠르게 발전하고 있습니다. 따라서 많은 경력보다는 변화에 유연하게 대응할 수 있는 능력이 선호됩니다. 자신이 지금까지 경험한 활동뿐만 아니라 “나는 창의적인 인재다”라는 것을 보여준다면 훨씬 더 많은 기회가 주어지고 있습니다. 대학과 기업은 창의적인 인재를 선발하기 위해서 코딩을 선발의 도구로 이용하고 있습니다. 그래서 코딩이 시대의 흐름에 발맞춰 창의적인 인재를 증명할 수 있는 척도가 되었습니다. SW특기자 전형을 주도하고 있는 카이스트, 고려대, 서강대, 한양대 그리고 구글, 삼성, 카카오, 네이버 등에서 인재 선발의 도구로 코딩을 많이 활용하고 있습니다. 이제는 전공을 불문하고 코딩은 선택이 아니라 필수인 것입니다. 코로나 이후 변화하는 언택트 사회 속 인재가 되기 위해서는 코딩이 꼭! 필요한 시대가 되었습니다. WHEN 언제부터 코딩을 배워야 하는가? 최소한 초등수학 정도를 마쳤다면 코딩 공부에 도전해 보라고 추천하고 싶습니다. 코딩도 조기교육이 중요합니다. 김연아 선수는 6살에 스케이트를 처음으로 신었고, 박세리 선수는 초등학교 때부터 골프채를 잡았으며, 손흥민 선수도 초등학교 때부터 전지훈련을 다녔고, 빌 게이츠, 스티브 잡스, 마크 저커버그도 아주 어렸을 때부터 열정적으로 코딩을 했다고 합니다. 코딩교육도 마찬가지로 언제부터 시작했는지에 따라 프리미어 리그에서 뛸 수 있는지, 코리안 리그에서 뛸 수 있는지, 아니면 조기 축구에서라도 뛸 수 있는지가 결정될 수 있습니다. 예전에는 코딩 공부가 자신의 적성에 맞는지 고민했다면, 요즘은 조기교육의 여부로 많은 친구들이 고민을 하고 있습니다. 하지만 이제는 늦게 시작했다고 걱정하지 않아도 될 것 같습니다. 『코딩마법서』가 여러분들의 든든한 지원군이 되어줄 것입니다. WHAT 무엇을 배워야 하는가? 우리가 우선적으로 배워야 하는 것은 알고리즘을 동반한 문제 해결 전략을 배워야 합니다. 여기서 문제 해결 전략이란? PS(Problem Solving)라고 하는데 주어진 창의적인 문제들을 코딩을 통해서 해결하는 것을 의미합니다. 그래서 학생, 취준생, 직장인들이 배워야 하는 것은 무엇보다도 PS 공부가 우선되어야 합니다. 한국에서는 이것을 정보라고 하고 미국에서는 Computer Science라고 합니다. 코딩의 실력을 극대화 할 오일러TV 유튜브 채널 (오일러TV)을 통해 저자가 직접 책 내용을 단계별로 설명해 주면서 코딩 입문자의 고민을 덜어주고 체계적인 실력을 다질 수 있는 영상 서비스를 제공합니다. 코딩을 게임처럼 오일러OJ euleroj.io 국내에 흔하게 볼 수 있는 문제들이 아닌, 저자가 20년 동안 교육한 문제 자료들이 오일러OJ 사이트에 구축되어 있습니다. 이 저저사이트를 통해 독자에게 단계별 문제풀이 할 수 있는 컨텐츠를 제공합니다. 사이트주소 : https://euleroj.io/ 문법만 공부해서는 코딩테스트 관문을 통과 할 수 없다 언택트 시대 초중고학생, 대학생, 취업준비생, 직장인들이 알아야 할 알짜배기 알고리즘 문제해결력(ASP:Algorithm Problem Solving)에 중점을 두고 기초문법, 기초수학, 기초자료구조 이론과 문제들을 수록합니다. 코딩마법서 시리즈만의 특징 기초부터 심화까지 모두 6단계 (STONE → IRON→ BRONZE → SILVER → GOLD → PLATINUM)로 나누어지며, 순차적으로 출간 예정입니다. 이번 책은 코딩마법서 세 번째 BRONZE 버전으로 개념서와 해법서로 구성되어 있습니다. |