Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

알고리즘 문제해결전략 #1

5,262 views

Published on

코딩소림사 스터디 ppt

Published in: Software
  • Be the first to comment

  • Be the first to like this

알고리즘 문제해결전략 #1

  1. 1. 알고리즘 문제해결전략 #1 코딩소림사 강병수
  2. 2. 왜 하필 알고리즘? • 이 책 공부가 별로 가성비 좋지는 않을 것 • 실무와는 큰 연관 없는 반면 • 꽤 오랫동안 공부가 필요하니까 • 차라리 신기술/라이브러리 API 하나 더 외우는게 나을지도? • 다음의 경우에는 반드시 도움이 될 것 • 문제 해결 능력 향상 • 문제 / 풀이 절차의 패턴화 • 설계 단계에서 estimation • 코딩 면접
  3. 3. 이번 주제의 목표 • 알고리즘 배경지식 습득 -> 어디 가서 아는 체 • 문제/알고리즘 패턴 습득 -> 문제해결 능력 향상 • Input 규모 / 문제의 복잡도 기반 estimation -> 아키텍트 기본 소양 • AI / ML 스터디 기본 소양 • 문제 풀이 연습 -> 코딩 면접 대비
  4. 4. 알고리즘? • Input • Output • Procedure • Finite state • Efficiency 주어짐 찾아내야 함 주어지는 Input의 규모가 클 수록 알고리즘의 Efficiency 가 빛을 발함
  5. 5. 복잡도? • O(n) , Ω(n) 어쩌구 저쩌구 복잡하지만 • 시간 복잡도 • loop 중첩 • 공간 복잡도 • memory allocation size • 알고리즘 성능 추정을 위한 유용한 도구
  6. 6. P / NP / NP-hard / NP-complete • P : ? • NP : ? • NP-hard : ? • NP-complete : ?
  7. 7. P / NP / NP-hard / NP-complete • P : polynomial time 이내에 해결 가능한 문제 • NP : 답이 맞았는지 여부를 polynomial time 이내에 찾을 수 있는 문제 • NP-hard : polynomial time 이내에 임의의 NP 문제를 환산 가능한 문제 • Ex : 어떤 np문제 a 를 더하고 빼고 곱하고 나누어서 np-hard 문제 x 가 된다면 • x = a + a - • 적어도 문제 x 는 a 보다 더하고 빼고 곱하고 나눈 만큼은 더 어려운 문제 • NP-complete : np 이면서 np-hard 인 문제
  8. 8. P / NP / NP-hard / NP-complete World of Problems NP P NP-hard NP complete
  9. 9. 모든 P = NP ? World of Problems NP-hard P=NP=NP-complete
  10. 10. 알고리즘 정당성 증명 • 수학적 귀납법 • 점화식 • 귀류법 • A가 참이면 모순이므로 A는 거짓 • 비둘기집 원리 • 4인승 자동차에 5명이 타면 적어도 1자리는 2명이 낑겨 앉음 • 구성적 증명 • 이 알고리즘이 되는 걸 보여주는 방법
  11. 11. 야로가 있다 • 알고리즘 외부에도 문제가 있다 • 프로그램 언어의 한계 / os의 한계 / machine의 한계 … • ex) recursion 과 stack overflow(숙제: 다음 발표자가 조사해 오세요) • tail call optimization • trampoline
  12. 12. 문제 / 풀이 패턴 • Divide & conquer • Dynamic programming • Greedy • Combinatorial search • Heuristic • Monte carlo • Simulated annealing • Neural network
  13. 13. 발표자 정하기 • 발표자는 해당 주제 이론/배경 소개 및 문제풀이 1~2개 정도 하시면 됩니다. • 분할 정복 • 동적 계획법 • 탐욕법 • 조합 탐색 • 네임드 알고리즘 • 기초자료구조 • 트리 • 그래프

×