728x90
class Graph
{
int[,] adj = new int[6, 6]
{
{ -1, 15, -1, 35, -1, -1 },
{ 15, -1, 05, 10, -1, -1 },
{ -1, 05, -1, -1, -1, -1 },
{ 35, 10, -1, -1, 05, -1 },
{ -1, -1, -1, 05, -1, 05 },
{ -1, -1, -1, -1, 05, -1 }
};
public void Dijikstra(int start)
{
bool[] visited = new bool[6];
int[] distance = new int[6];
int[] parent = new int[6];
Array.Fill(distance, Int32.MaxValue);
distance[start] = 0;
parent[start] = start;
while (true)
{
int closest = Int32.MaxValue;
int now = -1;
for (int i = 0; i < 6; i++)
{
if (visited[i])
continue;
if (distance[i] == Int32.MaxValue || distance[i] >= closest)
continue;
closest = distance[i];
now = i;
}
if (now == -1)
break;
visited[now] = true;
for (int next = 0; next < 6; next++)
{
if (adj[now,next] == -1)
continue;
if (visited[next])
continue;
int nextDist = distance[now] + adj[now, next];
if (nextDist < distance[next])
{
distance[next] = nextDist;
parent[next] = now;
}
}
}
}
728x90
'공부 > C#' 카테고리의 다른 글
[프로그래머스] C# 개인정보 수집 유효기간2023 KAKAO BLIND RECRUITMENT (0) | 2023.08.04 |
---|---|
[Unity] 커비 마무리! (0) | 2023.04.25 |
[C#] 콘솔창의 키보드 입력 필요할때만 받아서 처리하기 (0) | 2023.03.31 |
[C#] Window 콘솔에서 mp3파일 가져와서 재생하기 (0) | 2023.03.30 |
[C#] 디자인패턴 - 싱글톤, Factory, state(상태 패턴) (0) | 2023.03.28 |