Introduction to Graphs

Preview:

Citation preview

반갑습

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

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

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

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

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

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

요.

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

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

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

바로 그래프 !

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

By gladius

TopCoder Member

그래프 소개

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

매우 중요!

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

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

그래프의 종류

링크드리스트

트리

그래프

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

그래프의 표시

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

V 는 점들의 집합

E 는 선분들의 집합

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

[ u,v 는 V의 원소]

그래프의 표시

E = {A,B,C};

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

(A,B) = 1;

(A,C) = 5;

(B,C) = 1;

2. 그래프 탐색

DFS

BFS

DFS 기본구조 (iterator)

DFS 기본구조 (recursive)

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

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

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

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

GrafixMask (SRM 211)

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

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

하게 나온다.

하지만! Memory overflow 가 나기 쉽

고 TimeExceed 가 나는 경우가 다반사

이다.

하지만 DFS 는 너무 오래걸린

다.

BFS 기본구조 (iterator)

3. 최적의 경로 찾기

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

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

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

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

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

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

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

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

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

다익스트라는 그리디 이다

Floyd-Warshall

플로이드는 다이나믹 이다

ㄱㅅ

Recommended