맛있는감귤

BOJ : 1916 최소비용 구하기 본문

알고리즘/백준 알고리즘

BOJ : 1916 최소비용 구하기

맛있는감귤 2017. 1. 19. 04:12

문제 : https://www.acmicpc.net/problem/1916

일반적인 다익스트라 알고리즘 구현 문제


#include <stdio.h>
#define INF 987654321;
int V, E;
int start,end;
int map[1002][1002];
int dist[1002];
int isVisited[1002];

void input(){
    scanf("%d %d", &V, &E);
    
    for(int i=1; i<=V; i++){
        for(int j=1; j<=V; j++){
            map[i][j]=INF;
        }
        dist[i]=INF;
        isVisited[i]=0;
    }
    
    for(int i=1; i<=E; i++){
        int u, v, w;
        scanf("%d %d %d", &u, &v, &w);
        if(map[u][v] > w) map[u][v]=w;
    }
    scanf("%d", &start);
    scanf("%d",&end);
}

void dijkstra(){
    int min;
    int v =0;
    dist[start]=0;
    for(int i=1; i<=V; i++){
        min = INF;
        for(int j=1; j<=V; j++){
            if(isVisited[j]==0 && min > dist[j]){
                min = dist[j];
                v = j;
            }
        }
        isVisited[v] = 1;
        for(int j=1; j<=V;j++){
            if(dist[j]>dist[v]+map[v][j] && map[v][j]!=min){
                dist[j]=dist[v]+map[v][j];
            }
        }
    }
}
void output(){
    printf("%d", dist[end]);
}

int main(){
    input();
    dijkstra();
    output();
    return 0;
}

'알고리즘 > 백준 알고리즘' 카테고리의 다른 글

BOJ : 1924 2007년  (0) 2017.01.19
BOJ : 1922 네트워크 연결  (0) 2017.01.19
BOJ : 11945 뜨거운 붕어빵  (0) 2017.01.19
BOJ : 6378 디지털 루트  (0) 2017.01.19
BOJ : 1743 음식물 피하기  (0) 2017.01.17