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

More Related Content

Viewers also liked

코딩소림사 Rx java
코딩소림사 Rx java코딩소림사 Rx java
코딩소림사 Rx javaByeongsu Kang
 
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드도형 임
 
Aws summit 2017 사내전파교육
Aws summit 2017 사내전파교육Aws summit 2017 사내전파교육
Aws summit 2017 사내전파교육Byeongsu Kang
 
예외처리가이드
예외처리가이드예외처리가이드
예외처리가이드도형 임
 
Kth개발자 세미나 1회
Kth개발자 세미나 1회Kth개발자 세미나 1회
Kth개발자 세미나 1회Byeongsu Kang
 
Scala dreaded underscore
Scala dreaded underscoreScala dreaded underscore
Scala dreaded underscoreRUDDER
 
카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험Ohgyun Ahn
 
Webservice cache strategy
Webservice cache strategyWebservice cache strategy
Webservice cache strategyDaeMyung Kang
 
Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)Wooseung Kim
 
세션5. web3.js와 Node.js 를 사용한 dApp 개발
세션5. web3.js와 Node.js 를 사용한 dApp 개발세션5. web3.js와 Node.js 를 사용한 dApp 개발
세션5. web3.js와 Node.js 를 사용한 dApp 개발Jay JH Park
 
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍Jay JH Park
 
세션3. geth 클라이언트 실습 및 모니터링과 시각화
세션3. geth 클라이언트 실습 및 모니터링과 시각화세션3. geth 클라이언트 실습 및 모니터링과 시각화
세션3. geth 클라이언트 실습 및 모니터링과 시각화Jay JH Park
 
세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platformJay JH Park
 
세션2. 이더리움 합의 알고리즘과 마이닝
세션2. 이더리움 합의 알고리즘과 마이닝세션2. 이더리움 합의 알고리즘과 마이닝
세션2. 이더리움 합의 알고리즘과 마이닝Jay JH Park
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016Taehoon Kim
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016Taehoon Kim
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017Taehoon Kim
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
 
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017Taehoon Kim
 

Viewers also liked (19)

코딩소림사 Rx java
코딩소림사 Rx java코딩소림사 Rx java
코딩소림사 Rx java
 
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
 
Aws summit 2017 사내전파교육
Aws summit 2017 사내전파교육Aws summit 2017 사내전파교육
Aws summit 2017 사내전파교육
 
예외처리가이드
예외처리가이드예외처리가이드
예외처리가이드
 
Kth개발자 세미나 1회
Kth개발자 세미나 1회Kth개발자 세미나 1회
Kth개발자 세미나 1회
 
Scala dreaded underscore
Scala dreaded underscoreScala dreaded underscore
Scala dreaded underscore
 
카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험
 
Webservice cache strategy
Webservice cache strategyWebservice cache strategy
Webservice cache strategy
 
Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)
 
세션5. web3.js와 Node.js 를 사용한 dApp 개발
세션5. web3.js와 Node.js 를 사용한 dApp 개발세션5. web3.js와 Node.js 를 사용한 dApp 개발
세션5. web3.js와 Node.js 를 사용한 dApp 개발
 
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍
 
세션3. geth 클라이언트 실습 및 모니터링과 시각화
세션3. geth 클라이언트 실습 및 모니터링과 시각화세션3. geth 클라이언트 실습 및 모니터링과 시각화
세션3. geth 클라이언트 실습 및 모니터링과 시각화
 
세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platform
 
세션2. 이더리움 합의 알고리즘과 마이닝
세션2. 이더리움 합의 알고리즘과 마이닝세션2. 이더리움 합의 알고리즘과 마이닝
세션2. 이더리움 합의 알고리즘과 마이닝
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
 
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
 

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

(독서광) 알고리즘 퍼즐
(독서광) 알고리즘 퍼즐(독서광) 알고리즘 퍼즐
(독서광) 알고리즘 퍼즐Jay Park
 
[Devfest Campus Korea 2021]효율적인 문제해결 With 알고리즘
[Devfest Campus Korea 2021]효율적인 문제해결 With 알고리즘[Devfest Campus Korea 2021]효율적인 문제해결 With 알고리즘
[Devfest Campus Korea 2021]효율적인 문제해결 With 알고리즘GDGCampusKorea
 
FP, lazy evaluation
FP, lazy evaluation FP, lazy evaluation
FP, lazy evaluation 성범 홍
 
1 1 complexity_theory_and_np_proof_system_0710
1 1 complexity_theory_and_np_proof_system_07101 1 complexity_theory_and_np_proof_system_0710
1 1 complexity_theory_and_np_proof_system_0710Jiyun Kim
 
Automated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningAutomated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningSoo Kim
 
프로그래밍 대회 문제 제작하기
프로그래밍 대회 문제 제작하기프로그래밍 대회 문제 제작하기
프로그래밍 대회 문제 제작하기인서 박
 
코딩테스트 합격자 되기 연말강의자료(프로그래머스 콜라보)
코딩테스트 합격자 되기 연말강의자료(프로그래머스 콜라보)코딩테스트 합격자 되기 연말강의자료(프로그래머스 콜라보)
코딩테스트 합격자 되기 연말강의자료(프로그래머스 콜라보)ultrasuperrok
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비SeungMin Yang
 
[study] character aware neural language models
[study] character aware neural language models[study] character aware neural language models
[study] character aware neural language modelsGyuhyeon Nam
 
TML studio & Beep 알고리즘 스터디, 오리엔테이션
TML studio & Beep 알고리즘 스터디, 오리엔테이션TML studio & Beep 알고리즘 스터디, 오리엔테이션
TML studio & Beep 알고리즘 스터디, 오리엔테이션재원 최
 
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!Startlink
 
Deep Learning for Chatbot (4/4)
Deep Learning for Chatbot (4/4)Deep Learning for Chatbot (4/4)
Deep Learning for Chatbot (4/4)Jaemin Cho
 
01. c and time complexity
01. c and time complexity01. c and time complexity
01. c and time complexity승혁 조
 
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기SeokhwanMoon
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝Haesun Park
 
[D2대학생세미나]lovely algrorithm
[D2대학생세미나]lovely algrorithm[D2대학생세미나]lovely algrorithm
[D2대학생세미나]lovely algrorithmNAVER D2
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical MethodologyKyeongUkJang
 
carrier of_tricks_for_image_classification
carrier of_tricks_for_image_classificationcarrier of_tricks_for_image_classification
carrier of_tricks_for_image_classificationLEE HOSEONG
 
두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략
두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략
두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략Startlink
 

Similar to 알고리즘 문제해결전략 #1 (20)

(독서광) 알고리즘 퍼즐
(독서광) 알고리즘 퍼즐(독서광) 알고리즘 퍼즐
(독서광) 알고리즘 퍼즐
 
[Devfest Campus Korea 2021]효율적인 문제해결 With 알고리즘
[Devfest Campus Korea 2021]효율적인 문제해결 With 알고리즘[Devfest Campus Korea 2021]효율적인 문제해결 With 알고리즘
[Devfest Campus Korea 2021]효율적인 문제해결 With 알고리즘
 
FP, lazy evaluation
FP, lazy evaluation FP, lazy evaluation
FP, lazy evaluation
 
1 1 complexity_theory_and_np_proof_system_0710
1 1 complexity_theory_and_np_proof_system_07101 1 complexity_theory_and_np_proof_system_0710
1 1 complexity_theory_and_np_proof_system_0710
 
Automated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep LearningAutomated program corrector for programming assignments using Deep Learning
Automated program corrector for programming assignments using Deep Learning
 
프로그래밍 대회 문제 제작하기
프로그래밍 대회 문제 제작하기프로그래밍 대회 문제 제작하기
프로그래밍 대회 문제 제작하기
 
코딩테스트 합격자 되기 연말강의자료(프로그래머스 콜라보)
코딩테스트 합격자 되기 연말강의자료(프로그래머스 콜라보)코딩테스트 합격자 되기 연말강의자료(프로그래머스 콜라보)
코딩테스트 합격자 되기 연말강의자료(프로그래머스 콜라보)
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비
 
[study] character aware neural language models
[study] character aware neural language models[study] character aware neural language models
[study] character aware neural language models
 
TML studio & Beep 알고리즘 스터디, 오리엔테이션
TML studio & Beep 알고리즘 스터디, 오리엔테이션TML studio & Beep 알고리즘 스터디, 오리엔테이션
TML studio & Beep 알고리즘 스터디, 오리엔테이션
 
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!
 
Poscat seminar 1
Poscat seminar 1Poscat seminar 1
Poscat seminar 1
 
Deep Learning for Chatbot (4/4)
Deep Learning for Chatbot (4/4)Deep Learning for Chatbot (4/4)
Deep Learning for Chatbot (4/4)
 
01. c and time complexity
01. c and time complexity01. c and time complexity
01. c and time complexity
 
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
 
[D2대학생세미나]lovely algrorithm
[D2대학생세미나]lovely algrorithm[D2대학생세미나]lovely algrorithm
[D2대학생세미나]lovely algrorithm
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical Methodology
 
carrier of_tricks_for_image_classification
carrier of_tricks_for_image_classificationcarrier of_tricks_for_image_classification
carrier of_tricks_for_image_classification
 
두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략
두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략
두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략
 

More from Byeongsu Kang

Concurrent programming 2
Concurrent programming 2Concurrent programming 2
Concurrent programming 2Byeongsu Kang
 
Concurrent programming
Concurrent programmingConcurrent programming
Concurrent programmingByeongsu Kang
 
Dependency hell과 빌드지옥 탈출
Dependency hell과 빌드지옥 탈출Dependency hell과 빌드지옥 탈출
Dependency hell과 빌드지옥 탈출Byeongsu Kang
 
Stash 사용자 교육
Stash 사용자 교육Stash 사용자 교육
Stash 사용자 교육Byeongsu Kang
 
신규 협업도구 사용자 교육(공통 비개발자)
신규 협업도구 사용자 교육(공통 비개발자)신규 협업도구 사용자 교육(공통 비개발자)
신규 협업도구 사용자 교육(공통 비개발자)Byeongsu Kang
 
생각이라는 벽돌로 만드는 집
생각이라는 벽돌로 만드는 집생각이라는 벽돌로 만드는 집
생각이라는 벽돌로 만드는 집Byeongsu Kang
 
개발자 환경 설정
개발자 환경 설정개발자 환경 설정
개발자 환경 설정Byeongsu Kang
 

More from Byeongsu Kang (10)

Kotlin study #1
Kotlin study #1Kotlin study #1
Kotlin study #1
 
Kotlin study #0
Kotlin study #0Kotlin study #0
Kotlin study #0
 
Rx java essentials
Rx java essentialsRx java essentials
Rx java essentials
 
Concurrent programming 2
Concurrent programming 2Concurrent programming 2
Concurrent programming 2
 
Concurrent programming
Concurrent programmingConcurrent programming
Concurrent programming
 
Dependency hell과 빌드지옥 탈출
Dependency hell과 빌드지옥 탈출Dependency hell과 빌드지옥 탈출
Dependency hell과 빌드지옥 탈출
 
Stash 사용자 교육
Stash 사용자 교육Stash 사용자 교육
Stash 사용자 교육
 
신규 협업도구 사용자 교육(공통 비개발자)
신규 협업도구 사용자 교육(공통 비개발자)신규 협업도구 사용자 교육(공통 비개발자)
신규 협업도구 사용자 교육(공통 비개발자)
 
생각이라는 벽돌로 만드는 집
생각이라는 벽돌로 만드는 집생각이라는 벽돌로 만드는 집
생각이라는 벽돌로 만드는 집
 
개발자 환경 설정
개발자 환경 설정개발자 환경 설정
개발자 환경 설정
 

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

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