SlideShare a Scribd company logo
1 of 16
Download to read offline
TML studio & Beep
알고리즘 스터디
Orientation
발표자
• 최재원
• 2015 아주대학교 게임 창업 동아리 Beep 회장.
• 현재 아주대학교에서 컴퓨터 공학, 수학 전공 중.
• 현재 Quramsoft internship 중.
• 이전에 Bluehole studio, 아주대학교 미디어학과 연구실 Visual
computing lab에서 internship.
• 한국 애니메이션 고등학교 9기 컴퓨터 게임 제작과 졸업.
• Contact : jainersoer@ajou.ac.kr
(솔직하게) 목표가 뭐지?
• 학점 때문에?
• 취업하려고?
• 실력 쌓으려고?
• 대회에 나가거나 topcoder rating 쌓으려고?
• 왠지 안하면 안될 것 같아서?
내가 잡은 최소 목표
• 자료구조와 알고리즘을 직접 코딩해본다.
• 서로 진지빨고 문제를 풀기 위해서 머리를 맞대본다.
• git과 같은 필수 유틸리티를 사용해 본다.
Plans
• 총 6주, 주 2회, 각 1시간 30분.
• 진행 형식
• 한 사람씩 돌아가면서 한 토픽을 존내 파온다.
• PT를 작성해 와서 앞에서 발표한다.
• 발표 이후에는 PT를 slideshare에 올릴 예정.
• 남은 시간동안 구현을 하고, 다 못한 구현은 꼭 다음 시간까지 해온다.
• Googling, 서로 머리 맞대고 고민하는 건 적극 권장(질문의 형식이 아닌
토의의 형식으로).
Books
• CLRS, Introduction to Algorithms
• Levitin , Introduction to the Design & Analysis of
Algorithms(학교 알고리즘 수업 교재)
• Programming Pearls
• 프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략
• 컴퓨터 프로그램의 구조와 해석(알고리즘 책은 아니지만….)
• …
Topics
• Sorting
• Data structures (e.g. stack, queue, linked list, hash table….)
• Graphs
• Dynamic programming
• Greedy approach
• Anyone more? Huffman coding, Backtracking, Branch
and bound.
Restrictions
• Use actively “git, github.com, and google cloud engine”.
• Coding without a debugger.
• Coding without a compiler.
• 여기서 작성한 모든 PT는 slideshare에 공유할 예정.
Today’s topics
• What is an “Algorithm”?
• Analysis of insertion sort vs merge sort
• Asymptotic representation
• Array vs linked list
• Implementation of a linked list
What is an “Algorithms”?
1. 유한성 : 알고리즘은 단계들을 반드시 유한한 횟수로 거친 후에 종
료해야 한다.
2. 명확성 : 알고리즘의 각 단계는 반드시 명확하게 정의되어야 한다.
3. 입력 : 알고리즘은 0 또는 그 이상의 입력들을 가진다.
4. 출력 : 알고리즘은 하나나 그 이상의 출력들을 가진다.
5. 효과성(effectiveness) : 이론적으로 알고리즘의 모든 연산들이 사
람이 종이와 연필을 이용해서 유한한 시간 안에 정확하게 수행할
수 있을 정도로 충분히 단순해야 한다.
Reference : 류광 역, Donald E. Knuth 저, The Art of Computer Programmig 1
• Input: a random linear array A.
• Output: a sorted array A.
• Process: 

Reference : http://en.wikipedia.org/wiki/Insertion_sort
Insertion sort vs merge sort
• Input: a random linear array A.
• Output: a sorted array A.
• Process: 

http://en.wikipedia.org/wiki/Merge_sort
What is “Asymptotic Rep.”
• 대강의 알고리즘의 성능을 나타내는 집합
• 인풋 양을 Input으로, 걸리는 시간을 Output으로 하는 함수
• f(n) = O(g(n)) ; There exist c, n0 such that f(n) < cg(n) for any n
>= n0 => 오래 걸려도 이정도 안에는 된다.
• f(n) = Sigma(g(n)) ; There exist c, n0 such that f(n) > cg(n) for
any n >= n0 => 아무리 빨라도 이정도다.
• f(n) = Theta(g(n)) ; There exist c0, c1, n0 such that 

c1*g(n) < f(n) < c2*g(n) for any n >= n0

=> 이 바운더리 안에 들어간다.
Insertion sort vs merge sort
Reference : Tosin Joseph, An experiment to determine practical efficiency of 

insertion sort, merge sort and quick sort
Insertion sort vs merge sort
• Input: a random linear array A.
• Output: a sorted array A.
• Process:
Reference : http://en.wikipedia.org/wiki/Insertion_sort
• Input: a random linear array A.
• Output: a sorted array A.
• Process: 

Array vs linked list
Array Linked list
장점 Random access가 O(1)
위치를 알고 있다는 

가정 하에 삽입/삭제가 O(1)
단점 삽입/삭제 시 O(n) Random access가 O(n)
(과제)

Implementation of linked list
• Description
• Node : linked list의 node. Data로 int형 하나를 가지며, 다음 노드를 가리키는 변수를 포함한다.
• Requirement : 다음 네 가지 함수를 작성하고, 적절한 instance를 들어 구현이 잘 되었음을 보이시오.
• initialize
• destroy
• push(Node* prev, int data) ; prev node의 다음에 data 값의 node를 삽입한다.
• destroy(Node* target) ; target node를 삭제한다.
• Rule
• 언어는 자유.
• 웬만하면 같은 언어로 구현된 코드를 참고하지 마시오.(Ex) C++로 작성하는데 Java 코드를 참고하는건 ㄱㅊ. C++ 코
드는 안 ㄱㅊ
• 되도록 의사코드를 보고 작성하고, 구성원들과의 토론은 완전 장려. 굳이 베끼지 말라능.

More Related Content

What's hot

Howto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear RegressionHowto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear RegressionHyo jeong Lee
 
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...Seok-joon Yun
 
[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...
[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...
[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...Seok-joon Yun
 
[C++ Korea] Effective Modern C++ mva item 7 distinguish between and {} when c...
[C++ Korea] Effective Modern C++ mva item 7 distinguish between and {} when c...[C++ Korea] Effective Modern C++ mva item 7 distinguish between and {} when c...
[C++ Korea] Effective Modern C++ mva item 7 distinguish between and {} when c...Seok-joon Yun
 
[C++ korea] effective modern c++ study item 17 19 신촌 study
[C++ korea] effective modern c++ study item 17 19 신촌 study[C++ korea] effective modern c++ study item 17 19 신촌 study
[C++ korea] effective modern c++ study item 17 19 신촌 studySeok-joon Yun
 
[C++ Korea] Effective Modern C++ Study item14 16 +신촌
[C++ Korea] Effective Modern C++ Study item14 16 +신촌[C++ Korea] Effective Modern C++ Study item14 16 +신촌
[C++ Korea] Effective Modern C++ Study item14 16 +신촌Seok-joon Yun
 
[C++ korea] effective modern c++ study item 2 understanding auto type deduc...
[C++ korea] effective modern c++ study   item 2 understanding auto type deduc...[C++ korea] effective modern c++ study   item 2 understanding auto type deduc...
[C++ korea] effective modern c++ study item 2 understanding auto type deduc...Seok-joon Yun
 
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )Gunhee Lee
 
Lecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlowLecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlowSang Jun Lee
 
머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)ssusercdf17c
 
머신 러닝을 해보자 3장 (2022년 스터디)
머신 러닝을 해보자 3장 (2022년 스터디)머신 러닝을 해보자 3장 (2022년 스터디)
머신 러닝을 해보자 3장 (2022년 스터디)ssusercdf17c
 
객체지향 정리. Part1
객체지향 정리. Part1객체지향 정리. Part1
객체지향 정리. Part1kim HYUNG JIN
 
Effective Modern C++ MVA item 18 Use std::unique_ptr for exclusive-ownership ...
Effective Modern C++ MVA item 18 Use std::unique_ptr for exclusive-ownership ...Effective Modern C++ MVA item 18 Use std::unique_ptr for exclusive-ownership ...
Effective Modern C++ MVA item 18 Use std::unique_ptr for exclusive-ownership ...Seok-joon Yun
 
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)MinGeun Park
 
2 swift 상수,변수,튜풀 옵셔널
2 swift 상수,변수,튜풀 옵셔널2 swift 상수,변수,튜풀 옵셔널
2 swift 상수,변수,튜풀 옵셔널Changwon National University
 
[C++ Korea] Effective Modern C++ Study, Item 1 - 3
[C++ Korea] Effective Modern C++ Study, Item 1 - 3[C++ Korea] Effective Modern C++ Study, Item 1 - 3
[C++ Korea] Effective Modern C++ Study, Item 1 - 3Chris Ohk
 
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)Lee Seungeun
 

What's hot (19)

Howto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear RegressionHowto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear Regression
 
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
 
[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...
[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...
[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...
 
[C++ Korea] Effective Modern C++ mva item 7 distinguish between and {} when c...
[C++ Korea] Effective Modern C++ mva item 7 distinguish between and {} when c...[C++ Korea] Effective Modern C++ mva item 7 distinguish between and {} when c...
[C++ Korea] Effective Modern C++ mva item 7 distinguish between and {} when c...
 
[C++ korea] effective modern c++ study item 17 19 신촌 study
[C++ korea] effective modern c++ study item 17 19 신촌 study[C++ korea] effective modern c++ study item 17 19 신촌 study
[C++ korea] effective modern c++ study item 17 19 신촌 study
 
[C++ Korea] Effective Modern C++ Study item14 16 +신촌
[C++ Korea] Effective Modern C++ Study item14 16 +신촌[C++ Korea] Effective Modern C++ Study item14 16 +신촌
[C++ Korea] Effective Modern C++ Study item14 16 +신촌
 
[C++ korea] effective modern c++ study item 2 understanding auto type deduc...
[C++ korea] effective modern c++ study   item 2 understanding auto type deduc...[C++ korea] effective modern c++ study   item 2 understanding auto type deduc...
[C++ korea] effective modern c++ study item 2 understanding auto type deduc...
 
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
 
Lecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlowLecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlow
 
머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)
 
머신 러닝을 해보자 3장 (2022년 스터디)
머신 러닝을 해보자 3장 (2022년 스터디)머신 러닝을 해보자 3장 (2022년 스터디)
머신 러닝을 해보자 3장 (2022년 스터디)
 
객체지향 정리. Part1
객체지향 정리. Part1객체지향 정리. Part1
객체지향 정리. Part1
 
Effective Modern C++ MVA item 18 Use std::unique_ptr for exclusive-ownership ...
Effective Modern C++ MVA item 18 Use std::unique_ptr for exclusive-ownership ...Effective Modern C++ MVA item 18 Use std::unique_ptr for exclusive-ownership ...
Effective Modern C++ MVA item 18 Use std::unique_ptr for exclusive-ownership ...
 
C++11
C++11C++11
C++11
 
c++11
c++11c++11
c++11
 
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
 
2 swift 상수,변수,튜풀 옵셔널
2 swift 상수,변수,튜풀 옵셔널2 swift 상수,변수,튜풀 옵셔널
2 swift 상수,변수,튜풀 옵셔널
 
[C++ Korea] Effective Modern C++ Study, Item 1 - 3
[C++ Korea] Effective Modern C++ Study, Item 1 - 3[C++ Korea] Effective Modern C++ Study, Item 1 - 3
[C++ Korea] Effective Modern C++ Study, Item 1 - 3
 
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
 

Viewers also liked

학생 개발자, 인턴십으로 성장하기
학생 개발자, 인턴십으로 성장하기학생 개발자, 인턴십으로 성장하기
학생 개발자, 인턴십으로 성장하기재원 최
 
Extended overview
Extended overviewExtended overview
Extended overviewJiyeon Seo
 
Soundlight Around NHN NEXT [141212 Data visualization]
Soundlight Around NHN NEXT [141212 Data visualization]Soundlight Around NHN NEXT [141212 Data visualization]
Soundlight Around NHN NEXT [141212 Data visualization]Yurim Jin
 
[제5회] 9x년생 개발자 모임
[제5회] 9x년생 개발자 모임[제5회] 9x년생 개발자 모임
[제5회] 9x년생 개발자 모임Yurim Jin
 
[제3회] 9x년생 개발자 모임
[제3회] 9x년생 개발자 모임[제3회] 9x년생 개발자 모임
[제3회] 9x년생 개발자 모임Yurim Jin
 
React-Flux-Redux-study
React-Flux-Redux-studyReact-Flux-Redux-study
React-Flux-Redux-studyJiyeon Seo
 
[제4회] 9x년생 개발자 모임
[제4회] 9x년생 개발자 모임[제4회] 9x년생 개발자 모임
[제4회] 9x년생 개발자 모임Yurim Jin
 
코드리뷰를 시작하려는 그대에게
코드리뷰를 시작하려는 그대에게코드리뷰를 시작하려는 그대에게
코드리뷰를 시작하려는 그대에게Jiyeon Seo
 
[제6회] 9x년생 개발자 모임
[제6회] 9x년생 개발자 모임[제6회] 9x년생 개발자 모임
[제6회] 9x년생 개발자 모임Yurim Jin
 
"나는 네가 지난 여름에 산 것을 알고있다" - Google analytics 첫걸음...
"나는 네가 지난 여름에 산 것을 알고있다" - Google analytics 첫걸음..."나는 네가 지난 여름에 산 것을 알고있다" - Google analytics 첫걸음...
"나는 네가 지난 여름에 산 것을 알고있다" - Google analytics 첫걸음...Yurim Jin
 
[9x년생 개발자 모임 송년회] Red Black Tree
[9x년생 개발자 모임 송년회] Red Black Tree[9x년생 개발자 모임 송년회] Red Black Tree
[9x년생 개발자 모임 송년회] Red Black TreeYurim Jin
 
JEJUPICK [2016 Oh My Jeju Hackathon]
JEJUPICK [2016 Oh My Jeju Hackathon]JEJUPICK [2016 Oh My Jeju Hackathon]
JEJUPICK [2016 Oh My Jeju Hackathon]Yurim Jin
 
개발과 디자인은 재미있어 [141025 한국우분투커뮤니티 발표]
개발과 디자인은 재미있어 [141025 한국우분투커뮤니티 발표]개발과 디자인은 재미있어 [141025 한국우분투커뮤니티 발표]
개발과 디자인은 재미있어 [141025 한국우분투커뮤니티 발표]Yurim Jin
 
모임 뒤에 사람있어요 - 9XD 1년 회고
모임 뒤에 사람있어요 - 9XD 1년 회고모임 뒤에 사람있어요 - 9XD 1년 회고
모임 뒤에 사람있어요 - 9XD 1년 회고Yurim Jin
 
신입 개발자 생활백서
신입 개발자 생활백서신입 개발자 생활백서
신입 개발자 생활백서Yurim Jin
 
Apakah saudara sudah tahu 77 sanggahanygtidakadabukti
Apakah saudara sudah tahu 77 sanggahanygtidakadabuktiApakah saudara sudah tahu 77 sanggahanygtidakadabukti
Apakah saudara sudah tahu 77 sanggahanygtidakadabuktihenry jaya teddy
 
Kebutuhandasarkomunikasiorangsuksesfajarwibisono
KebutuhandasarkomunikasiorangsuksesfajarwibisonoKebutuhandasarkomunikasiorangsuksesfajarwibisono
Kebutuhandasarkomunikasiorangsuksesfajarwibisonohenry jaya teddy
 
Menjawab perihal ahmad deedat mengakuiyesus
Menjawab perihal ahmad deedat mengakuiyesusMenjawab perihal ahmad deedat mengakuiyesus
Menjawab perihal ahmad deedat mengakuiyesushenry jaya teddy
 

Viewers also liked (20)

학생 개발자, 인턴십으로 성장하기
학생 개발자, 인턴십으로 성장하기학생 개발자, 인턴십으로 성장하기
학생 개발자, 인턴십으로 성장하기
 
Extended overview
Extended overviewExtended overview
Extended overview
 
Soundlight Around NHN NEXT [141212 Data visualization]
Soundlight Around NHN NEXT [141212 Data visualization]Soundlight Around NHN NEXT [141212 Data visualization]
Soundlight Around NHN NEXT [141212 Data visualization]
 
[제5회] 9x년생 개발자 모임
[제5회] 9x년생 개발자 모임[제5회] 9x년생 개발자 모임
[제5회] 9x년생 개발자 모임
 
[제3회] 9x년생 개발자 모임
[제3회] 9x년생 개발자 모임[제3회] 9x년생 개발자 모임
[제3회] 9x년생 개발자 모임
 
React-Flux-Redux-study
React-Flux-Redux-studyReact-Flux-Redux-study
React-Flux-Redux-study
 
[제4회] 9x년생 개발자 모임
[제4회] 9x년생 개발자 모임[제4회] 9x년생 개발자 모임
[제4회] 9x년생 개발자 모임
 
코드리뷰를 시작하려는 그대에게
코드리뷰를 시작하려는 그대에게코드리뷰를 시작하려는 그대에게
코드리뷰를 시작하려는 그대에게
 
[제6회] 9x년생 개발자 모임
[제6회] 9x년생 개발자 모임[제6회] 9x년생 개발자 모임
[제6회] 9x년생 개발자 모임
 
"나는 네가 지난 여름에 산 것을 알고있다" - Google analytics 첫걸음...
"나는 네가 지난 여름에 산 것을 알고있다" - Google analytics 첫걸음..."나는 네가 지난 여름에 산 것을 알고있다" - Google analytics 첫걸음...
"나는 네가 지난 여름에 산 것을 알고있다" - Google analytics 첫걸음...
 
[9x년생 개발자 모임 송년회] Red Black Tree
[9x년생 개발자 모임 송년회] Red Black Tree[9x년생 개발자 모임 송년회] Red Black Tree
[9x년생 개발자 모임 송년회] Red Black Tree
 
JEJUPICK [2016 Oh My Jeju Hackathon]
JEJUPICK [2016 Oh My Jeju Hackathon]JEJUPICK [2016 Oh My Jeju Hackathon]
JEJUPICK [2016 Oh My Jeju Hackathon]
 
개발과 디자인은 재미있어 [141025 한국우분투커뮤니티 발표]
개발과 디자인은 재미있어 [141025 한국우분투커뮤니티 발표]개발과 디자인은 재미있어 [141025 한국우분투커뮤니티 발표]
개발과 디자인은 재미있어 [141025 한국우분투커뮤니티 발표]
 
모임 뒤에 사람있어요 - 9XD 1년 회고
모임 뒤에 사람있어요 - 9XD 1년 회고모임 뒤에 사람있어요 - 9XD 1년 회고
모임 뒤에 사람있어요 - 9XD 1년 회고
 
신입 개발자 생활백서
신입 개발자 생활백서신입 개발자 생활백서
신입 개발자 생활백서
 
Apakah saudara sudah tahu 77 sanggahanygtidakadabukti
Apakah saudara sudah tahu 77 sanggahanygtidakadabuktiApakah saudara sudah tahu 77 sanggahanygtidakadabukti
Apakah saudara sudah tahu 77 sanggahanygtidakadabukti
 
Kebutuhandasarkomunikasiorangsuksesfajarwibisono
KebutuhandasarkomunikasiorangsuksesfajarwibisonoKebutuhandasarkomunikasiorangsuksesfajarwibisono
Kebutuhandasarkomunikasiorangsuksesfajarwibisono
 
Menjawab perihal ahmad deedat mengakuiyesus
Menjawab perihal ahmad deedat mengakuiyesusMenjawab perihal ahmad deedat mengakuiyesus
Menjawab perihal ahmad deedat mengakuiyesus
 
Pride Purple- Khushiyan Har Pal 2
Pride Purple- Khushiyan Har Pal 2Pride Purple- Khushiyan Har Pal 2
Pride Purple- Khushiyan Har Pal 2
 
Company profile
Company profileCompany profile
Company profile
 

Similar to TML studio & Beep 알고리즘 스터디, 오리엔테이션

Coding interview
Coding interviewCoding interview
Coding interviewSoohan Ahn
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍QooJuice
 
랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorial랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorialLee Seungeun
 
A tour of C++ : the basics
A tour of C++ : the basicsA tour of C++ : the basics
A tour of C++ : the basicsJaewon Choi
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝Jinwon Lee
 
2012 3 qp_hybrid algorithm optimization with artificial intelligence
2012 3 qp_hybrid algorithm optimization with artificial intelligence 2012 3 qp_hybrid algorithm optimization with artificial intelligence
2012 3 qp_hybrid algorithm optimization with artificial intelligence Jong MIn Yu
 
Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기Joonsung Lee
 
[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pub[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pubJaewook. Kang
 
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들DongMin Choi
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tae Young Lee
 
클로져 소개 강의 (한국정보통신산업노동조합)
클로져 소개 강의 (한국정보통신산업노동조합)클로져 소개 강의 (한국정보통신산업노동조합)
클로져 소개 강의 (한국정보통신산업노동조합)Sang-Kyu Park
 
Amugona study 1회 jjw
Amugona study 1회 jjwAmugona study 1회 jjw
Amugona study 1회 jjw정완 전
 
Amugona study 1회 jjw
Amugona study 1회 jjwAmugona study 1회 jjw
Amugona study 1회 jjw정완 전
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규ChangKyu Song
 
How to use the Ruby programing language
How to use the Ruby programing languageHow to use the Ruby programing language
How to use the Ruby programing languageJaeYeoul Ahn
 
TenforFlow Internals
TenforFlow InternalsTenforFlow Internals
TenforFlow InternalsKiho Hong
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의Kwangyoun Jung
 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summarySehyeon Nam
 

Similar to TML studio & Beep 알고리즘 스터디, 오리엔테이션 (20)

Coding interview
Coding interviewCoding interview
Coding interview
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍
 
랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorial랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorial
 
A tour of C++ : the basics
A tour of C++ : the basicsA tour of C++ : the basics
A tour of C++ : the basics
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
 
파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝
 
2012 3 qp_hybrid algorithm optimization with artificial intelligence
2012 3 qp_hybrid algorithm optimization with artificial intelligence 2012 3 qp_hybrid algorithm optimization with artificial intelligence
2012 3 qp_hybrid algorithm optimization with artificial intelligence
 
Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기
 
[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pub[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pub
 
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 
클로져 소개 강의 (한국정보통신산업노동조합)
클로져 소개 강의 (한국정보통신산업노동조합)클로져 소개 강의 (한국정보통신산업노동조합)
클로져 소개 강의 (한국정보통신산업노동조합)
 
Amugona study 1회 jjw
Amugona study 1회 jjwAmugona study 1회 jjw
Amugona study 1회 jjw
 
Amugona study 1회 jjw
Amugona study 1회 jjwAmugona study 1회 jjw
Amugona study 1회 jjw
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규
 
How to use the Ruby programing language
How to use the Ruby programing languageHow to use the Ruby programing language
How to use the Ruby programing language
 
TenforFlow Internals
TenforFlow InternalsTenforFlow Internals
TenforFlow Internals
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summary
 

TML studio & Beep 알고리즘 스터디, 오리엔테이션

  • 1. TML studio & Beep 알고리즘 스터디 Orientation
  • 2. 발표자 • 최재원 • 2015 아주대학교 게임 창업 동아리 Beep 회장. • 현재 아주대학교에서 컴퓨터 공학, 수학 전공 중. • 현재 Quramsoft internship 중. • 이전에 Bluehole studio, 아주대학교 미디어학과 연구실 Visual computing lab에서 internship. • 한국 애니메이션 고등학교 9기 컴퓨터 게임 제작과 졸업. • Contact : jainersoer@ajou.ac.kr
  • 3. (솔직하게) 목표가 뭐지? • 학점 때문에? • 취업하려고? • 실력 쌓으려고? • 대회에 나가거나 topcoder rating 쌓으려고? • 왠지 안하면 안될 것 같아서?
  • 4. 내가 잡은 최소 목표 • 자료구조와 알고리즘을 직접 코딩해본다. • 서로 진지빨고 문제를 풀기 위해서 머리를 맞대본다. • git과 같은 필수 유틸리티를 사용해 본다.
  • 5. Plans • 총 6주, 주 2회, 각 1시간 30분. • 진행 형식 • 한 사람씩 돌아가면서 한 토픽을 존내 파온다. • PT를 작성해 와서 앞에서 발표한다. • 발표 이후에는 PT를 slideshare에 올릴 예정. • 남은 시간동안 구현을 하고, 다 못한 구현은 꼭 다음 시간까지 해온다. • Googling, 서로 머리 맞대고 고민하는 건 적극 권장(질문의 형식이 아닌 토의의 형식으로).
  • 6. Books • CLRS, Introduction to Algorithms • Levitin , Introduction to the Design & Analysis of Algorithms(학교 알고리즘 수업 교재) • Programming Pearls • 프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략 • 컴퓨터 프로그램의 구조와 해석(알고리즘 책은 아니지만….) • …
  • 7. Topics • Sorting • Data structures (e.g. stack, queue, linked list, hash table….) • Graphs • Dynamic programming • Greedy approach • Anyone more? Huffman coding, Backtracking, Branch and bound.
  • 8. Restrictions • Use actively “git, github.com, and google cloud engine”. • Coding without a debugger. • Coding without a compiler. • 여기서 작성한 모든 PT는 slideshare에 공유할 예정.
  • 9. Today’s topics • What is an “Algorithm”? • Analysis of insertion sort vs merge sort • Asymptotic representation • Array vs linked list • Implementation of a linked list
  • 10. What is an “Algorithms”? 1. 유한성 : 알고리즘은 단계들을 반드시 유한한 횟수로 거친 후에 종 료해야 한다. 2. 명확성 : 알고리즘의 각 단계는 반드시 명확하게 정의되어야 한다. 3. 입력 : 알고리즘은 0 또는 그 이상의 입력들을 가진다. 4. 출력 : 알고리즘은 하나나 그 이상의 출력들을 가진다. 5. 효과성(effectiveness) : 이론적으로 알고리즘의 모든 연산들이 사 람이 종이와 연필을 이용해서 유한한 시간 안에 정확하게 수행할 수 있을 정도로 충분히 단순해야 한다. Reference : 류광 역, Donald E. Knuth 저, The Art of Computer Programmig 1
  • 11. • Input: a random linear array A. • Output: a sorted array A. • Process: 
 Reference : http://en.wikipedia.org/wiki/Insertion_sort Insertion sort vs merge sort • Input: a random linear array A. • Output: a sorted array A. • Process: 
 http://en.wikipedia.org/wiki/Merge_sort
  • 12. What is “Asymptotic Rep.” • 대강의 알고리즘의 성능을 나타내는 집합 • 인풋 양을 Input으로, 걸리는 시간을 Output으로 하는 함수 • f(n) = O(g(n)) ; There exist c, n0 such that f(n) < cg(n) for any n >= n0 => 오래 걸려도 이정도 안에는 된다. • f(n) = Sigma(g(n)) ; There exist c, n0 such that f(n) > cg(n) for any n >= n0 => 아무리 빨라도 이정도다. • f(n) = Theta(g(n)) ; There exist c0, c1, n0 such that 
 c1*g(n) < f(n) < c2*g(n) for any n >= n0
 => 이 바운더리 안에 들어간다.
  • 13. Insertion sort vs merge sort Reference : Tosin Joseph, An experiment to determine practical efficiency of 
 insertion sort, merge sort and quick sort
  • 14. Insertion sort vs merge sort • Input: a random linear array A. • Output: a sorted array A. • Process: Reference : http://en.wikipedia.org/wiki/Insertion_sort • Input: a random linear array A. • Output: a sorted array A. • Process: 

  • 15. Array vs linked list Array Linked list 장점 Random access가 O(1) 위치를 알고 있다는 
 가정 하에 삽입/삭제가 O(1) 단점 삽입/삭제 시 O(n) Random access가 O(n)
  • 16. (과제)
 Implementation of linked list • Description • Node : linked list의 node. Data로 int형 하나를 가지며, 다음 노드를 가리키는 변수를 포함한다. • Requirement : 다음 네 가지 함수를 작성하고, 적절한 instance를 들어 구현이 잘 되었음을 보이시오. • initialize • destroy • push(Node* prev, int data) ; prev node의 다음에 data 값의 node를 삽입한다. • destroy(Node* target) ; target node를 삭제한다. • Rule • 언어는 자유. • 웬만하면 같은 언어로 구현된 코드를 참고하지 마시오.(Ex) C++로 작성하는데 Java 코드를 참고하는건 ㄱㅊ. C++ 코 드는 안 ㄱㅊ • 되도록 의사코드를 보고 작성하고, 구성원들과의 토론은 완전 장려. 굳이 베끼지 말라능.