SlideShare a Scribd company logo
1 of 78
Download to read offline
가장 먼 두 점
2/ 321
선정배경 – 기하 알고리즘을 배우자
3/ 321
점과 점 사이의 거리
(6, 3)
(1, 1)
4/ 321
점과 점 사이의 거리
5/ 321
점과 점 사이의 거리
5
2Sqrt(25 + 9)
약 5.830951894845301
6/ 321
점과 점 사이의 거리
5
넘나 쉬운 것
7/ 321
점들의 집합 중 가장 먼 두 점
점이 6개다
8/ 321
점들의 집합 중 가장 먼 두 점
𝑂(𝑛2
)
알고리즘?
점이 6개다
9/ 321
점들의 집합 중 가장 먼 두 점
점이 100,000,000개면?
10/ 321
점들의 집합 중 가장 먼 두 점
점이 100,000,000개면?
- 넘나 어려운 것
글쎄요
11/ 321
점들의 집합 중 가장 먼 두 점
점이 많으면 어려운 문제가 된다.
12/ 321
점들의 집합 중 가장 먼 두 점
𝑂(𝑛2
) 알고리즘보다 더 쎈
𝑂(𝑛𝑙𝑜𝑔𝑛) 알고리즘이 존재
13/ 321
점들의 집합 중 가장 먼 두 점
𝑂(𝑛2
) 알고리즘보다 더 쎈
𝑂(𝑛𝑙𝑜𝑔𝑛) 알고리즘이 존재
- 볼록 껍질 문제로 해결 가능
14/ 321
볼록 껍질 문제란?
요놈들을 감싸는 볼록껍질을 구하라
15/ 321
볼록 껍질 문제란?
요놈들을 감싸는 볼록껍질을 구하라
- 이렇게 만들면 됨
16/ 321
볼록 껍질 문제란?
요놈들을 감싸는 볼록껍질을 구하라
- 이렇게 만들면 됨
어떻게 해야 할까?
17/ 321
볼록 껍질 문제 풀이
Graham scan method (1972년)
𝑶(𝒏𝒍𝒐𝒈𝒏)
18/ 321
볼록 껍질 문제 풀이
Graham scan method (1972년)
𝑶(𝒏𝒍𝒐𝒈𝒏)
19/ 321
볼록 껍질 문제 풀이
무조건 외곽이 되는 점은 무엇일까?
Graham scan method
20/ 321
볼록 껍질 문제 풀이
무조건 외곽이 되는 점은 무엇일까?
- 그것은 상하좌우 최 외곽에 있는 점
21/ 321
볼록 껍질 문제 풀이
이 점은 무조건 볼록 껍질에 포함된다.
22/ 321
볼록 껍질 문제 풀이
선택된 점에서 모든 점 사이의 각도를 구한다.
23/ 321
볼록 껍질 문제 풀이
각도를 기준으로 이렇게 정렬
24/ 321
볼록 껍질 문제 풀이
각도를 기준으로 이렇게 정렬
1
2
3
4
5
6
7
0
25/ 321
볼록 껍질 문제 풀이
1
2
3
4
5
6
7
0
26/ 321
볼록 껍질 문제 풀이
1
2
3
4
5
6
7
0
1
0
Stack
0, 1을 stack에 넣음
27/ 321
볼록 껍질 문제 풀이
1
2
3
4
5
6
7
0
1
0
Stack
Stack에서 위에 있는 2개의 점과 현재 비교해야
하는 점을 이어보자.
28/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
1
0
Stack
Stack에서 위에 있는 2개의 점과 현재 비교해야
하는 점을 이어보자.
1
0
29/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
1
0
Stack
이 진행은 반 시계방향인가?
1
0
30/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
2
1
0
Stack
반 시계방향이니 Stack에 현재 검사중인 번호(2)를
넣음
1
0
31/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
2
1
0
Stack
Stack에서 위에 있는 2개의 점과 현재 비교해야
하는 점을 이어보자.
1
0
32/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
2
1
0
Stack
반 시계방향인가?
1
0
33/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
3
2
1
0
Stack
반 시계방향이니 Stack에 현재 검사중인 번호(3)를
넣음
1
0
34/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
3
2
1
0
Stack
Stack에서 위에 있는 2개의 점과 현재 비교해야
하는 점을 이어보자.
1
0
35/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
3
2
1
0
Stack
반 시계방향인가?
1
0
36/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
4
3
2
1
0
Stack
반 시계방향이니 Stack에 현재 검사중인 번호(4)를
넣음
1
0
37/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
4
3
2
1
0
Stack
Stack에서 위에 있는 2개의 점과 현재 비교해야
하는 점을 이어보자.
1
0
38/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
4
3
2
1
0
Stack
시계방향인가? - ㅇㅇ
1
0
39/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
4
3
2
1
0
Stack
Stack을 pop
1
0
40/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
3
2
1
0
Stack
Stack을 pop
1
0
41/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
3
2
1
0
Stack
Stack에서 위에 있는 2개의 점과 현재 비교해야
하는 점을 이어보자.
1
0
42/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
3
2
1
0
Stack
반 시계방향인가?
1
0
43/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
5
3
2
1
0
Stack
반 시계방향이니 Stack에 현재 검사중인 번호(5)를
넣음
1
0
44/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
5
3
2
1
0
Stack
Stack에서 위에 있는 2개의 점과 현재 비교해야
하는 점을 이어보자.
1
0
45/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
5
3
2
1
0
Stack
시계방향이다 - Stack을 pop
1
0
46/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
3
2
1
0
Stack
시계방향이다 - Stack을 pop
1
0
47/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
3
2
1
0
Stack
Stack에서 위에 있는 2개의 점과 현재 비교해야
하는 점을 이어보자.
1
0
48/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
3
2
1
0
Stack
시계방향이다 - Stack을 pop
1
0
49/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
2
1
0
Stack
시계방향이다 - Stack을 pop
1
0
50/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
2
1
0
Stack
Stack에서 위에 있는 2개의 점과 현재 비교해야
하는 점을 이어보자. – 반 시계방향
1
0
51/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
2
1
0
Stack
Stack에서 위에 있는 2개의 점과 현재 비교해야
하는 점을 이어보자. – 반 시계방향
1
0
52/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
6
2
1
0
Stack
Stack에서 위에 있는 2개의 점과 현재 비교해야
하는 점을 이어보자. – 반 시계방향
1
0
53/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
7
6
2
1
0
Stack
검색 종료.
1
0
54/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
6
2
1
0
Stack
Stack에 있는 점을 이어보면 볼록 껍질이 완성됨.
1
0
7
55/ 321
볼록 껍질 문제 풀이
2
3
4
5
6
7
6
2
1
0
Stack
Stack에 있는 점을 이어보면 볼록 껍질이 완성됨.
1
0
7
56/ 321
점들의 집합 중 가장 먼 두 점
2
3
4
5
6
점들의 집합 중 가장 먼 두 점은 볼록 껍질을 구성하는
점들의 집합에 존재한다.
1
0
7
57/ 321
점들의 집합 중 가장 먼 두 점
G I F
58/ 321
점들의 집합 중 가장 먼 두 점
2
3
4
5
6
볼록 껍질 다각형에서 가장 먼 두 점을 어떻게 찾을까?
1
0
7
59/ 321
점들의 집합 중 가장 먼 두 점
2
3
4
5
6
볼록 껍질 다각형에서 가장 먼 두 점을 어떻게 찾을까?
1
0
7
𝑂(𝑛2
)
알고리즘?
60/ 321
점들의 집합 중 가장 먼 두 점
2
3
4
5
6
𝑂(𝑛2
)이 아니라 𝑂(𝑛)알고리즘이 존재
1
0
7
61/ 321
점들의 집합 중 가장 먼 두 점
Rotating calipers (1978년)
62/ 321
점들의 집합 중 가장 먼 두 점
Rotating calipers (1978년)
rightest
leftest
63/ 321
점들의 집합 중 가장 먼 두 점
rightest
leftest
64/ 321
점들의 집합 중 가장 먼 두 점
rightest
leftest
65/ 321
점들의 집합 중 가장 먼 두 점
수직선
66/ 321
점들의 집합 중 가장 먼 두 점
67/ 321
점들의 집합 중 가장 먼 두 점
각도가 더욱
작은 쪽 직선을 회전
68/ 321
점들의 집합 중 가장 먼 두 점
69/ 321
점들의 집합 중 가장 먼 두 점
70/ 321
점들의 집합 중 가장 먼 두 점
71/ 321
점들의 집합 중 가장 먼 두 점
72/ 321
점들의 집합 중 가장 먼 두 점
한 바퀴 돌면 그만!
73/ 321
점들의 집합 중 가장 먼 두 점
74/ 321
점들의 집합 중 가장 먼 두 점
총 시간복잡도?
𝑛𝑙𝑜𝑔𝑛 + 𝑛𝑙𝑜𝑔𝑛 + 𝑛
𝑂(𝑛𝑙𝑜𝑔𝑛)
75/ 321
응용
othogonal
Bounding box
Bounding box(3D)
76/ 321
응용
othogonal
Bounding box
Bounding box(3D)
77/ 321
응용
Cluster bound
Q&A

More Related Content

What's hot

Lecture 8 dynamic programming
Lecture 8 dynamic programmingLecture 8 dynamic programming
Lecture 8 dynamic programming
Oye Tu
 
Giáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - AptechGiáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - Aptech
MasterCode.vn
 

What's hot (20)

Compiler lec 8
Compiler lec 8Compiler lec 8
Compiler lec 8
 
Tài liệu soroban cấp độ 1
Tài liệu soroban cấp độ 1Tài liệu soroban cấp độ 1
Tài liệu soroban cấp độ 1
 
Natural Language processing Parts of speech tagging, its classes, and how to ...
Natural Language processing Parts of speech tagging, its classes, and how to ...Natural Language processing Parts of speech tagging, its classes, and how to ...
Natural Language processing Parts of speech tagging, its classes, and how to ...
 
Về kỹ thuật Attention trong mô hình sequence-to-sequence tại hội nghị ACL 2017
Về kỹ thuật Attention trong mô hình sequence-to-sequence  tại hội nghị ACL 2017Về kỹ thuật Attention trong mô hình sequence-to-sequence  tại hội nghị ACL 2017
Về kỹ thuật Attention trong mô hình sequence-to-sequence tại hội nghị ACL 2017
 
Giáo trình toán tư duy finger math của Soroban Super Math Việt Nam
Giáo trình toán tư duy finger math của Soroban Super Math Việt NamGiáo trình toán tư duy finger math của Soroban Super Math Việt Nam
Giáo trình toán tư duy finger math của Soroban Super Math Việt Nam
 
Np completeness
Np completenessNp completeness
Np completeness
 
Divide and Conquer
Divide and ConquerDivide and Conquer
Divide and Conquer
 
Bleu vs rouge
Bleu vs rougeBleu vs rouge
Bleu vs rouge
 
Tổ chức công tác kế toán hành chính sự nghiệp tại Trường THPT Nguyễn Tất Thành
Tổ chức công tác kế toán hành chính sự nghiệp tại Trường THPT Nguyễn Tất Thành Tổ chức công tác kế toán hành chính sự nghiệp tại Trường THPT Nguyễn Tất Thành
Tổ chức công tác kế toán hành chính sự nghiệp tại Trường THPT Nguyễn Tất Thành
 
Luận văn: Tổ chức dạy học chủ đề tích hợp “Nhiệt độ và sự sống”, HAY
Luận văn: Tổ chức dạy học chủ đề tích hợp “Nhiệt độ và sự sống”, HAYLuận văn: Tổ chức dạy học chủ đề tích hợp “Nhiệt độ và sự sống”, HAY
Luận văn: Tổ chức dạy học chủ đề tích hợp “Nhiệt độ và sự sống”, HAY
 
kiến trúc máy tính và hợp ngữ Bài 00
kiến trúc máy tính và hợp ngữ Bài 00kiến trúc máy tính và hợp ngữ Bài 00
kiến trúc máy tính và hợp ngữ Bài 00
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?
 
Sql server chuong 2 nkhanh
Sql server chuong 2 nkhanhSql server chuong 2 nkhanh
Sql server chuong 2 nkhanh
 
Emotion mining in text
Emotion mining in textEmotion mining in text
Emotion mining in text
 
ỨNG DỤNG KỸ THUẬT HỌC SÂU TRONG CHẨN ĐOÁN BỆNH NGOÀI DA ceb245a4
ỨNG DỤNG KỸ THUẬT HỌC SÂU TRONG CHẨN ĐOÁN BỆNH NGOÀI DA ceb245a4ỨNG DỤNG KỸ THUẬT HỌC SÂU TRONG CHẨN ĐOÁN BỆNH NGOÀI DA ceb245a4
ỨNG DỤNG KỸ THUẬT HỌC SÂU TRONG CHẨN ĐOÁN BỆNH NGOÀI DA ceb245a4
 
UseNUMA做了什么?(2012-03-14)
UseNUMA做了什么?(2012-03-14)UseNUMA做了什么?(2012-03-14)
UseNUMA做了什么?(2012-03-14)
 
Lecture 8 dynamic programming
Lecture 8 dynamic programmingLecture 8 dynamic programming
Lecture 8 dynamic programming
 
Song song hóa thao tác xử lý ảnh sử dụng OpenCL
Song song hóa thao tác xử lý ảnh sử dụng OpenCLSong song hóa thao tác xử lý ảnh sử dụng OpenCL
Song song hóa thao tác xử lý ảnh sử dụng OpenCL
 
Artificial intelligence ai l4-tim kiem-heuristic
Artificial intelligence ai l4-tim kiem-heuristicArtificial intelligence ai l4-tim kiem-heuristic
Artificial intelligence ai l4-tim kiem-heuristic
 
Giáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - AptechGiáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - Aptech
 

Viewers also liked

Viewers also liked (20)

DLL 인젝션
DLL 인젝션DLL 인젝션
DLL 인젝션
 
Baekjoon Online Judge 1648번 풀이
Baekjoon Online Judge 1648번 풀이Baekjoon Online Judge 1648번 풀이
Baekjoon Online Judge 1648번 풀이
 
Baekjoon Online Judge 1201번 풀이
Baekjoon Online Judge 1201번 풀이Baekjoon Online Judge 1201번 풀이
Baekjoon Online Judge 1201번 풀이
 
Baekjoon Online Judge 10986번 풀이
Baekjoon Online Judge 10986번 풀이Baekjoon Online Judge 10986번 풀이
Baekjoon Online Judge 10986번 풀이
 
Baekjoon Online Judge 2873번 풀이
Baekjoon Online Judge 2873번 풀이Baekjoon Online Judge 2873번 풀이
Baekjoon Online Judge 2873번 풀이
 
Baekjoon Online Judge 3015번 풀이
Baekjoon Online Judge 3015번 풀이Baekjoon Online Judge 3015번 풀이
Baekjoon Online Judge 3015번 풀이
 
Baekjoon Online Judge 1451번 풀이
Baekjoon Online Judge 1451번 풀이Baekjoon Online Judge 1451번 풀이
Baekjoon Online Judge 1451번 풀이
 
Baekjoon Online Judge 1019번 풀이
Baekjoon Online Judge 1019번 풀이Baekjoon Online Judge 1019번 풀이
Baekjoon Online Judge 1019번 풀이
 
Coder’s High 2014 풀이
Coder’s High 2014 풀이Coder’s High 2014 풀이
Coder’s High 2014 풀이
 
2014 ACM-ICPC Daejeon 인터넷 예선 해설
2014 ACM-ICPC Daejeon 인터넷 예선 해설2014 ACM-ICPC Daejeon 인터넷 예선 해설
2014 ACM-ICPC Daejeon 인터넷 예선 해설
 
(Fios#02) 3. 빠르게 끝내는 악성코드 분석과 대응
(Fios#02) 3. 빠르게 끝내는 악성코드 분석과 대응(Fios#02) 3. 빠르게 끝내는 악성코드 분석과 대응
(Fios#02) 3. 빠르게 끝내는 악성코드 분석과 대응
 
나는 어떻게 알고리즘을 공부했을까? + 신기한 방법으로 문제 풀어보기
나는 어떻게 알고리즘을 공부했을까? + 신기한 방법으로 문제 풀어보기나는 어떻게 알고리즘을 공부했을까? + 신기한 방법으로 문제 풀어보기
나는 어떻게 알고리즘을 공부했을까? + 신기한 방법으로 문제 풀어보기
 
(Fios#03) 1. 실전 윈도 악성코드 메모리 분석
(Fios#03) 1. 실전 윈도 악성코드 메모리 분석(Fios#03) 1. 실전 윈도 악성코드 메모리 분석
(Fios#03) 1. 실전 윈도 악성코드 메모리 분석
 
Baekjoon Online Judge 1492번 풀이
Baekjoon Online Judge 1492번 풀이Baekjoon Online Judge 1492번 풀이
Baekjoon Online Judge 1492번 풀이
 
그로스 해킹(Growth Hacking)
그로스 해킹(Growth Hacking)그로스 해킹(Growth Hacking)
그로스 해킹(Growth Hacking)
 
제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요
제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요
제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요
 
악성코드 개념 및 대응 기술 (사이버 게놈 기술)
악성코드 개념 및 대응 기술 (사이버 게놈 기술)악성코드 개념 및 대응 기술 (사이버 게놈 기술)
악성코드 개념 및 대응 기술 (사이버 게놈 기술)
 
(Fios#02) 7. 윈도우 10 포렌식 분석
(Fios#02) 7. 윈도우 10 포렌식 분석(Fios#02) 7. 윈도우 10 포렌식 분석
(Fios#02) 7. 윈도우 10 포렌식 분석
 
Virtualization technology for security
Virtualization technology for securityVirtualization technology for security
Virtualization technology for security
 
Power shell 악성코드 동향 20161118_차민석_디지털 포렌식 기술특강 공개판
Power shell 악성코드 동향 20161118_차민석_디지털 포렌식 기술특강 공개판Power shell 악성코드 동향 20161118_차민석_디지털 포렌식 기술특강 공개판
Power shell 악성코드 동향 20161118_차민석_디지털 포렌식 기술특강 공개판
 

Recently uploaded

Recently uploaded (7)

JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 

2차원 평면상에서 가장 먼 두 점 구하기