introduction to graphs

33

Upload: skkunpc

Post on 17-Jul-2015

507 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Introduction to Graphs

반갑습

Page 2: Introduction to Graphs

Quizzzzzzzzzzzzzzzz 기환이는 자신이 캠퍼스에서 길을 잃어버려

서 다시 자신의 연구실로 돌아가기로 결심하

였습니다. 이때 기환이는 빈칸으로만 움직일

수 있으며, 한번움직일때 상하좌우로만 움직

일수 있습니다. 기환이가 연구실로 돌아가

기위해 필요한 최소 스텝을 리턴하도록 하세

요.

길이 없을시에는 -1을 리턴하세요.

여기서 필요한 자료구조는 무엇일까요?

정답: 그냥 기환이를 버린다.

Page 3: Introduction to Graphs

바로 그래프 !

Page 4: Introduction to Graphs
Page 5: Introduction to Graphs

1. 그래프와 그래프 자료구조

By gladius

TopCoder Member

Page 6: Introduction to Graphs

그래프 소개

그래프의 자료구조를 아는것은

매우 중요!

많은 문제에서 그래프를 사용!

그래프 문제임을 인식하기 힘듬!

Page 7: Introduction to Graphs

그래프의 종류

링크드리스트

트리

그래프

그래프와 나머지의 차이점은 무엇 ??

Page 8: Introduction to Graphs

그래프의 표시

G = { V, E} 로 표시할수있다.

V 는 점들의 집합

E 는 선분들의 집합

여기서 E는 다시 (u,v)로 표시할수있다.

[ u,v 는 V의 원소]

Page 9: Introduction to Graphs

그래프의 표시

E = {A,B,C};

V = {(A,B),(B,C),(A,C)};

(A,B) = 1;

(A,C) = 5;

(B,C) = 1;

Page 10: Introduction to Graphs
Page 11: Introduction to Graphs

2. 그래프 탐색

DFS

BFS

Page 12: Introduction to Graphs

DFS 기본구조 (iterator)

Page 13: Introduction to Graphs

DFS 기본구조 (recursive)

Page 14: Introduction to Graphs
Page 15: Introduction to Graphs

300 x 400 의 패드에 파란색 사각형이

여러장 놓여있다. 파란색 사각형으로

완전히 잘려지는 도형들의 넓이를

작은 순서대로 정렬하여 return 하시오

GrafixMask (SRM 211)

Page 16: Introduction to Graphs
Page 17: Introduction to Graphs

기본적으로 스택을 써야한다.

리커젼을 통한 구현도 쉽다. 답도 정확

하게 나온다.

하지만! Memory overflow 가 나기 쉽

고 TimeExceed 가 나는 경우가 다반사

이다.

하지만 DFS 는 너무 오래걸린

다.

Page 18: Introduction to Graphs
Page 19: Introduction to Graphs

BFS 기본구조 (iterator)

Page 20: Introduction to Graphs
Page 21: Introduction to Graphs

3. 최적의 경로 찾기

1) 다익스트라 알고리즘이란?

① 시작점과 연결된 모든 노드에 거리와 시작된 곳

을 알리는 라벨을 임시로 붙인다

② 임시라벨중 최적 거리를 찾는다.

③ 최적 거리의 라벨을 확정 노드로 라벨을 확정한다.

④ 다시 확정된 라벨이 시작점이 되어 확정라벨 외 연결된

모든 노드에 임시 라벨을 붙임

⑤ 다시 모든 임시 라벨중 최적 거리를 찾는다.

⑥ 위와 같이 되풀이 하며 끝점을 찾는다.

Page 22: Introduction to Graphs

다익스트라는 그리디 이다

Page 23: Introduction to Graphs
Page 24: Introduction to Graphs
Page 25: Introduction to Graphs
Page 26: Introduction to Graphs
Page 27: Introduction to Graphs
Page 28: Introduction to Graphs
Page 29: Introduction to Graphs

Floyd-Warshall

Page 30: Introduction to Graphs

플로이드는 다이나믹 이다

Page 31: Introduction to Graphs
Page 32: Introduction to Graphs
Page 33: Introduction to Graphs

ㄱㅅ