2차원 평면상에서 가장 먼 두 점 구하기
Post on 12-Apr-2017
884 Views
Preview:
TRANSCRIPT
가장 먼 두 점
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
23
4
5
6
7
0
25/ 321
볼록껍질문제풀이
1
23
4
5
6
7
0
26/ 321
볼록껍질문제풀이
1
23
4
5
6
7
0
1
0
Stack
0, 1을 stack에넣음
27/ 321
볼록껍질문제풀이
1
23
4
5
6
7
0
1
0
Stack
Stack에서위에있는 2개의점과현재비교해야
하는점을이어보자.
28/ 321
볼록껍질문제풀이
23
4
5
6
7
1
0
Stack
Stack에서위에있는 2개의점과현재비교해야
하는점을이어보자.
1
0
29/ 321
볼록껍질문제풀이
23
4
5
6
7
1
0
Stack
이진행은반시계방향인가?
1
0
30/ 321
볼록껍질문제풀이
23
4
5
6
72
1
0
Stack
반시계방향이니 Stack에현재검사중인번호(2)를
넣음
1
0
31/ 321
볼록껍질문제풀이
23
4
5
6
72
1
0
Stack
Stack에서위에있는 2개의점과현재비교해야
하는점을이어보자.
1
0
32/ 321
볼록껍질문제풀이
23
4
5
6
72
1
0
Stack
반시계방향인가?
1
0
33/ 321
볼록껍질문제풀이
23
4
5
6
7
3
2
1
0
Stack
반시계방향이니 Stack에현재검사중인번호(3)를
넣음
1
0
34/ 321
볼록껍질문제풀이
23
4
5
6
7
3
2
1
0
Stack
Stack에서위에있는 2개의점과현재비교해야
하는점을이어보자.
1
0
35/ 321
볼록껍질문제풀이
23
4
5
6
7
3
2
1
0
Stack
반시계방향인가?
1
0
36/ 321
볼록껍질문제풀이
23
4
5
6
7
4
3
2
1
0
Stack
반시계방향이니 Stack에현재검사중인번호(4)를
넣음
1
0
37/ 321
볼록껍질문제풀이
23
4
5
6
7
4
3
2
1
0
Stack
Stack에서위에있는 2개의점과현재비교해야
하는점을이어보자.
1
0
38/ 321
볼록껍질문제풀이
23
4
5
6
7
4
3
2
1
0
Stack
시계방향인가? -ㅇㅇ
1
0
39/ 321
볼록껍질문제풀이
23
4
5
6
7
4
3
2
1
0
Stack
Stack을 pop
1
0
40/ 321
볼록껍질문제풀이
23
4
5
6
7
3
2
1
0
Stack
Stack을 pop
1
0
41/ 321
볼록껍질문제풀이
23
4
5
6
7
3
2
1
0
Stack
Stack에서위에있는 2개의점과현재비교해야
하는점을이어보자.
1
0
42/ 321
볼록껍질문제풀이
23
4
5
6
7
3
2
1
0
Stack
반시계방향인가?
1
0
43/ 321
볼록껍질문제풀이
23
4
5
6
7
5
3
2
1
0
Stack
반시계방향이니 Stack에현재검사중인번호(5)를
넣음
1
0
44/ 321
볼록껍질문제풀이
23
4
5
6
7
5
3
2
1
0
Stack
Stack에서위에있는 2개의점과현재비교해야
하는점을이어보자.
1
0
45/ 321
볼록껍질문제풀이
23
4
5
6
7
5
3
2
1
0
Stack
시계방향이다 - Stack을 pop
1
0
46/ 321
볼록껍질문제풀이
23
4
5
6
7
3
2
1
0
Stack
시계방향이다 - Stack을 pop
1
0
47/ 321
볼록껍질문제풀이
23
4
5
6
7
3
2
1
0
Stack
Stack에서위에있는 2개의점과현재비교해야
하는점을이어보자.
1
0
48/ 321
볼록껍질문제풀이
23
4
5
6
7
3
2
1
0
Stack
시계방향이다 - Stack을 pop
1
0
49/ 321
볼록껍질문제풀이
23
4
5
6
72
1
0
Stack
시계방향이다 - Stack을 pop
1
0
50/ 321
볼록껍질문제풀이
23
4
5
6
72
1
0
Stack
Stack에서위에있는 2개의점과현재비교해야
하는점을이어보자. –반시계방향
1
0
51/ 321
볼록껍질문제풀이
23
4
5
6
72
1
0
Stack
Stack에서위에있는 2개의점과현재비교해야
하는점을이어보자. –반시계방향
1
0
52/ 321
볼록껍질문제풀이
23
4
5
6
7
6
2
1
0
Stack
Stack에서위에있는 2개의점과현재비교해야
하는점을이어보자. –반시계방향
1
0
53/ 321
볼록껍질문제풀이
23
4
5
6
7
7
6
2
1
0
Stack
검색종료.
1
0
54/ 321
볼록껍질문제풀이
23
4
5
6
7
6
2
1
0
Stack
Stack에있는점을이어보면볼록껍질이완성됨.
1
0
7
55/ 321
볼록껍질문제풀이
23
4
5
6
7
6
2
1
0
Stack
Stack에있는점을이어보면볼록껍질이완성됨.
1
0
7
56/ 321
점들의집합중가장먼두점
23
4
5
6
점들의집합중가장먼두점은볼록껍질을구성하는
점들의집합에존재한다.
1
0
7
57/ 321
점들의집합중가장먼두점
G I F
58/ 321
점들의집합중가장먼두점
23
4
5
6
볼록껍질다각형에서가장먼두점을어떻게찾을까?
1
0
7
59/ 321
점들의집합중가장먼두점
23
4
5
6
볼록껍질다각형에서가장먼두점을어떻게찾을까?
1
0
7
𝑂(𝑛2)알고리즘?
60/ 321
점들의집합중가장먼두점
23
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
top related