알고리즘 문제해결기법 입문 - goormEDU

알고리즘 문제해결기법 입문

알고리즘을 기반으로 프로그래밍 문제해결능력을 기르기 위한 기반을 다지는 입문 코스입니다

Lecture Introduction
Difficulty
Normal
Category
Programming - Algorithm
Tag
프로그래밍 기본, 알고리즘, 자료구조, 프로그래밍, 취업준비, 대회준비, 코딩, 코딩테스트, 개발자취업
Certificate
You can issue a certificate of completion
Target Audience
- 프로그래밍 문법을 공부했지만 여전히 구현이 어려우신 분
- 알고리즘, 자료구조 등 관련 과목을 수강하는 학생
- 기업 사내 역량평가 혹은 입사 코딩테스트를 준비하는 분
- 프로그래밍 기술 면접을 준비하는 분
- 정보올림피아드, ACM ICPC 등의 온라인 알고리즘 대회를 대비하고 싶은 분

저 진짜 알고리즘 왠만한 거 다 찾아봤는데,
해도 해도 모르겠어요...

저는 가망이 없는 건가요?



여러분 잘못이 아니에요


개발자에게 '문제'요구사항과 제한 사항이 명확한 지시사항
즉, 우리가 소프트웨어적인 방법으로 해결해야 할 대상이죠

때문에 '문제 해결'이란 일상 언어로 표현된 지시사항을
분석해서 이산적인 문제로 추상화하고, 실제로 해결할
알고리즘을 설계한 다음 주어진 조건과 제한사항에 맞춰
가장 적합한 알고리즘을 찾아 구현하는 일련의 과정이에요

말만 들어도 복잡하죠?

이렇게 문제를 해결하려면 종합적인 능력을 갖춰야 해요
소프트웨어적 지식, 프로그래밍 언어에 대한 이해,
이산수학과 알고리즘, 자료구조, 분석 능력까지...

이렇게 많은 능력이 필요하니 당연히 어려운데
일반 도서나 강의에서는 이론 위주로 가르치거나
사전 지식과 경험을 갖춘 사람만 이해할 수 있도록
구성된 경우가 많습니다




기본부터 차근차근 훈련해볼까요?


유명한 알고리즘을 암기하는데에 목매지 않아도 괜찮아요

기초적인 문법 위주로 가장 기본이 되는 로직부터 구현하며
여러분이 생각한 내용을 프로그래밍으로 표현하다보면

어떻게 이런 방법을 떠올려 정확히 구현해낼 수 있는지,
가장 기초적이라고 하지만 나는 왜 이해할 수 없었는지
하나씩 깨우치실 수 있습니다




왜 이 강좌냐구요?


10년 가까이 알고리즘을 공부하고 파헤쳐 왔습니다

여러 수업을 진행하고 실제 문제 출제도 하면서
알고리즘을 공부하는 사람들이 어느 포인트에서
어려워하고 포기하는지 잘 알고 있습니다

최대한 이해하기 쉽고 수월한 방법으로 풀어 설명하고,
너무 일반적이거나 특수한 문제는 꼼꼼히 배제했으며,
불필요한 아이디어나 수학지식도 가려냈습니다

내용 뿐만 아니라 환경도 고려했습니다

구름EDU의 실습 환경은 한 사이트에서 학습, 코딩, 채점
모두 가능
하기 때문에 학습 집중도를 높일 수 있습니다

또한, 여러분이 좀 더 빠르게 좋은 습관을 잡을 수 있도록
뼈대 코드와 모법 답안도 함께 제공드립니다




수강 전 참고해주세요

1. 대상 프로그래밍 언어

기본 코드 예시는 Java/C++/Python3을 기준으로 하지만,
대부분 기초 문법과 그림/도표로 설명하기에 
해당 언어를
몰라도 충분히 완강하실 수 있습니다!

심지어 채점과 실습은 대부분의 프로그래밍 언어
진행할 수 있다는 점 참고해주세요


2. 사전 지식

강좌를 원활하게 수강하려면 다음 배경 지식이 필요합니다

- 하나 이상 언어에 대한 기초적인 문법
- 중고등 교과 수준의 수학적 용어 및 표기법
- 필요한 지식을 구글에 검색할 수 있는 능력


3. 참고 자료

본 강좌를 제작하는데 다음과 같은 자료를 참고했습니다

(1) 서적 및 텍스트 자료
- Introduction to algorithm 3/e (Thomas H. 외 저)
- Introduction to the design and analysis of
algorithm 3/e (Levitin 저)
- 알고리즘 문제 해결 전략 (구종만 저)
- 프로그래밍 콘테스트 챌린징 (Takuya Akiba 외 저)
- 위키피디아

(2) 문제 참고 자료
ACM ICPC, COCI, 한국 정보올림피아드,
Google Code Jam, 
Codeforces,
Lavida Online Judge, Baekjoon Online Judge









알고리즘 프로페셔널


강사 김동이

現 Cognex Corp. Software Engineer
前 SUALAB Software Engineer


알고리즘 대회 및 기업 코딩테스트
문제 출제 경험 다수

전국 대학생 프로그래밍 경시대회 은상(2015)
ACM-ICPC 한국 리저널 11등 (2015)
전국 대학생 프로그래밍 경시대회 동상(2013)
ACM-ICPC 한국 리저널 13등 (2013)
ACM-ICPC 한국 리저널 17등(2012)
이데일리 코딩챌린지 5등
팁스타운배 코드챌린지 5등
그 외 알고리즘 관련 대회 출전 및 입상 경험 다수


 

all Icon made by Freepik from www.flaticon.com

Preview
Expand All
  • 03
    1. 코드와 친해지기
  • 문제1E-합 구하기2
  • 04
    2. 알고리즘의 연산량
  • 문제2B-오름차순인가?
  • 05
    3. 공간 활용하기
  • 문제3A-전화번호
    문제3E-색종이
    문제3H-두 카드
Curriculum
Expand All
  • 01
    About Course
  • 공부하는 방법
    문제 모범 답안
    공식 오프라인 강의
  • 02
    0. Introduction & Tutorial
  • 알고리즘과 자료구조
    문제 해결하기
    약속하기
    문제의 구성
    문제0A-출력해보기
    문제0B-입력받아보기
    문제0C-반복해보기
    문제0D-저장해보기
    문제0E-테스트케이스
  • 03
    1. 코드와 친해지기
  • 챕터1 강의노트 (임시)
    코드와 친해지기
    반복문과 친해지기
    문제1A-최대값 함수
    문제1B-배열의 최대값
    문제1C-카운팅하기
    문제1D-합 구하기1
    문제1E-합 구하기2
    문제1F-탐색하기1
    문제1G-탐색하기2
    문제1H-탐색하기3
    문제1I-선택정렬 구현하기
    문제1J-합 구하기3
    단원 되짚어보기 & 해설
  • 04
    2. 알고리즘의 연산량
  • 연산량과 시간복잡도
    챕터2 강의노트 (임시)
    실제 연산량 줄이기
    문제2A-도토리 키재기
    문제2B-오름차순인가?
    문제2C-다양성
    문제2D-문자열의 비교
    문제2E-소수의 판별
    문제2F-데스티니
    문제2G-버블정렬 구현하기
    문제2H-픽셀 수 세기
    문제2I-정주행
    문제2J-승부 조작
    단원 되짚어보기
  • 05
    3. 공간 활용하기
  • 배열의 특징
    챕터3 강의노트(임시)
    배열 활용하기
    문제3A-전화번호
    문제3B-페인트
    문제3C-응모
    문제3D-피보나치 나머지
    문제3E-색종이
    문제3F-과유불급
    문제3G-팬미팅
    문제3H-두 카드
    문제3I-세 카드
    문제3J-네 카드
  • 06
    4. 자주 사용되는 수학 알고리즘
  • 챕터4 강의노트(임시)
    문제4A-스도쿠 보드
    문제4B-Probing
    문제4C-최대공약수와 최소공배수
    문제4D-수열의 순환
    문제4E-소인수 분해
    문제4F-소수 세기
    문제4G-배열 흔들기
    문제4H-카잉 달력
    문제4I-골드바흐의 추측
    문제4J-공약수 게임
  • 07
    5. 구현 훈련하기
  • 문제5A-놀이 공원
    문제5B-거대 놀이 공원
    문제5C-레이저 타워
    문제5D-레이저 타워 건설하기
    문제5E-숫자 채우기1
    문제5F-숫자 채우기2
    문제5G-숫자 채우기3
    문제5H-두 직사각형
    문제5I-두 선분
    문제5J-로봇 청소기
    문제5K-고성능 로봇 청소기
    문제5L-NBA농구
    문제5M-와일드 카드
    문제5N-패턴 검사
    문제5O-단어 퍼즐
    문제5P-이름 짓기
  • 08
    6. 자료구조 활용하기
  • 챕터6 강의노트 (임시)
    문제6A-괄호 문자열
    문제6B-탑
    문제6C-히스토그램
    문제6D-조세퍼스 문제
    문제6E-폭탄 제거
    문제6F-폭탄 제거 순서 정하기
    문제6G-불안정 지역
    문제6H-중복 제거하기
    문제6I-정사각형
    문제6J-빈도수 세기
    문제6K-시장 추천하기
    문제6L-배열 합치기
    문제6M-이중 우선순위 큐
    문제6N-중앙값 큐
    문제6O-피자 하와이
  • 09
    7. 재귀 함수와 분할 정복
  • 챕터7 강의노트(임시)
    [문제07A] 모든 조합 출력하기
    [문제07B] 하노이의 탑
    [문제07C] 단지 번호 붙이기
    [문제07D] Merge Sort 구현하기
    [문제07E] Quick Sort 구현하기
    [문제07F] 히스토그램
    [문제07G] Counting Inversion Pairs
    [문제07H] Finding Closet Pair
  • 10
    8. DFS/BFS
  • 챕터8 강의노트(임시)
    [문제08A] - 그래프의 탐색 1
    [문제08B] - 그래프의 탐색 2
    [문제08C] - 그래프의 최장 경로
    [문제08D] - 그래프의 최단 경로
    [문제08E] - 바이러스
    [문제08F] - 미로 탈출하기
    [문제08G] - 토마토
    [문제08H] - 소수 경로
    [문제08I] - 스도쿠 보드 채우기
    [문제08J] - N Queen
  • 11
    9. 그래프 알고리즘
  • 챕터9 강의노트(임시)
    [문제09A] 해밀턴 경로
    [문제09B] 외판원 순회 문제
    [문제09C] 한 붓 그리기
    [문제09D] 그래프의 연결성
    [문제09E] 최소 신장 트리 1
    [문제09F] 최소 신장 트리 2
    [문제09G] 그래프의 최단 거리
    [문제09H] 그래프의 최단 거리 2
  • 12
    10. 동적 계획법
  • [문제10A] 가장 긴 부분 증가수열 (LIS)
    챕터10 강의노트(임시)
    [문제10B] 팬스 수리하기
    [문제10C] 아르바이트
    [문제10D] 회선 설치하기
    [문제10E] 2차원 누적합
    [문제10F] 퀼팅(Quilting)
    [문제10G] 가장 긴 공통 부분 문자열 (LCS)
    [문제10H] Ah-choo!
    [문제10I] 곱하기는 귀찮아
    [문제10J] 올바른 괄호 문자열
    [문제10K] 배낭 문제 (Knapsack Problem)
    [문제10L] 7 Segment Display
  • 13
    11. 문제를 푸는 다른 방법
  • 챕터11 강의노트(임시)
    [문제11A] 지하철을 빠르게 빠르게
    [문제11B] 감시 로봇
    [문제11C] 복도 통과하기
    [문제11D] Selling Cells
    [문제11E] 인구조사
    [문제11F] 그래프 최소 분할
  • 14
    12. 문자열 알고리즘
  • 챕터12 강의노트 (임시)
    [문제12A] Rabin Karp
    [문제12B] KMP
    [문제12C] 실패함수 계산하기
    [문제12F] Trie 구현하기
  • 15
    Appendix - Java
  • 16
    Appendix - C++
Instructor Introduction
user
김동이Teacher

Lecture Reviews
  • No reviews have been written.

200,000

100,000(50%)


Average Rating
4.6
Difficulty
Normal
Lecture Period
Unlimited
URL