chaesoo
so0ob
chaesoo
전체 방문자
오늘
어제
  • 분류 전체보기 (169)
    • 알고리즘 (157)
      • 백준 다시풀기 (8)
      • solved.ac (137)
      • 백준 알고리즘 공부 (12)
    • 활동일지 (5)
    • 개발 (5)
      • Unity (4)
    • 책 공부 (2)
      • clean code (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 소마13기
  • 로스트아크 디코 봇
  • solved.ac
  • 백준
  • 백준2448
  • 자료구조
  • 유니티
  • 최단거리알고리즘
  • 디코봇 파이썬
  • 다익스트라
  • 게임개발
  • 백준미세먼지안녕!
  • 문자열
  • 알고리즘
  • 분할정복거듭제곱
  • dfs
  • 다시풀기
  • SW마에스트로 13기
  • 구현
  • 디코 봇
  • 플로이드-와샬
  • 분할정복
  • 로아 디코봇
  • DP
  • 디스코드 봇 파이썬
  • BFS
  • 정보처리기사 2021 합격률
  • 클린코드
  • C++
  • 클린코드2장

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
chaesoo

so0ob

알고리즘/백준 알고리즘 공부

[다익스트라] (백준 5972) 택배 배송

2022. 3. 14. 16:07
알고리즘
다익스트라

 

 

[문제 본문]

더보기

문제

농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 구두쇠라서 최소한의 소들을 만나면서 지나가고 싶습니다.

농부 현서에게는 지도가 있습니다. N (1 <= N <= 50,000) 개의 헛간과, 소들의 길인 M (1 <= M <= 50,000) 개의 양방향 길이 그려져 있고, 각각의 길은 C_i (0 <= C_i <= 1,000) 마리의 소가 있습니다. 소들의 길은 두 개의 떨어진 헛간인 A_i 와 B_i (1 <= A_i <= N; 1 <= B_i <= N; A_i != B_i)를 잇습니다. 두 개의 헛간은 하나 이상의 길로 연결되어 있을 수도 있습니다. 농부 현서는 헛간 1에 있고 농부 찬홍이는 헛간 N에 있습니다.

다음 지도를 참고하세요.

           [2]---
          / |    \
         /1 |     \ 6
        /   |      \
     [1]   0|    --[3]
        \   |   /     \2
        4\  |  /4      [6]
          \ | /       /1
           [4]-----[5] 
                3  

농부 현서가 선택할 수 있는 최선의 통로는 1 -> 2 -> 4 -> 5 -> 6 입니다. 왜냐하면 여물의 총합이 1 + 0 + 3 + 1 = 5 이기 때문입니다.

농부 현서의 지도가 주어지고, 지나가는 길에 소를 만나면 줘야할 여물의 비용이 주어질 때 최소 여물은 얼마일까요? 농부 현서는 가는 길의 길이는 고려하지 않습니다.

입력

첫째 줄에 N과 M이 공백을 사이에 두고 주어집니다.

둘째 줄부터 M+1번째 줄까지 세 개의 정수 A_i, B_i, C_i가 주어집니다.

출력

첫째 줄에 농부 현서가 가져가야 될 최소 여물을 출력합니다.

제한

예제 입력 1

6 8
4 5 3
2 4 0
4 1 4
2 1 1
5 6 1
3 6 2
3 2 6
3 4 4

예제 출력 1

5

힌트

W3sicHJvYmxlbV9pZCI6IjU5NzIiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWQwZGRcdWJjMzAgXHViYzMwXHVjMWExIiwiZGVzY3JpcHRpb24iOiI8cD5cdWIxOGRcdWJkODAgXHVkNjA0XHVjMTFjXHViMjk0IFx1YjE4ZFx1YmQ4MCBcdWNjMmNcdWQ2NGRcdWM3NzRcdWM1ZDBcdWFjOGMgXHVkMGRkXHViYzMwXHViOTdjIFx1YmMzMFx1YjJlY1x1ZDU3NFx1YzkxOFx1YzU3YyBcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1YWRmOFx1YjlhY1x1YWNlMCBcdWM5YzBcdWFlMDgsJm5ic3A7XHVhYzA4IFx1YzkwMFx1YmU0NFx1Yjk3YyBcdWQ1NThcdWFjZTAgXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LiBcdWQzYzlcdWQ2NTRcdWI4NmRcdWFjOGMgXHVhYzAwXHViODI0XHViYTc0IFx1YWMwMFx1YjI5NCBcdWFlMzhcdWM1ZDAgXHViOWNjXHViMDk4XHViMjk0IFx1YmFhOFx1YjRlMCBcdWMxOGNcdWI0ZTRcdWM1ZDBcdWFjOGMgXHViOWRiXHVjNzg4XHViMjk0IFx1YzVlY1x1YmIzY1x1Yzc0NCBcdWM5MThcdWM1N2MmbmJzcDtcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1YmIzY1x1Yjg2MCBcdWQ2MDRcdWMxMWNcdWIyOTQgXHVhZDZjXHViNDUwXHVjMWUwXHViNzdjXHVjMTFjIFx1Y2Q1Y1x1YzE4Y1x1ZDU1Y1x1Yzc1OCZuYnNwO1x1YzE4Y1x1YjRlNFx1Yzc0NCBcdWI5Y2NcdWIwOThcdWJhNzRcdWMxMWMgXHVjOWMwXHViMDk4XHVhYzAwXHVhY2UwIFx1YzJmNlx1YzJiNVx1YjJjOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViMThkXHViZDgwIFx1ZDYwNFx1YzExY1x1YzVkMFx1YWM4Y1x1YjI5NCBcdWM5YzBcdWIzYzRcdWFjMDAgXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LiZuYnNwO04mbmJzcDsoMSAmbHQ7PSBOICZsdDs9IDUwLDAwMCkgXHVhYzFjXHVjNzU4IFx1ZDVkYlx1YWMwNFx1YWNmYywgXHVjMThjXHViNGU0XHVjNzU4IFx1YWUzOFx1Yzc3OCBNICgxICZsdDs9IE0mbmJzcDsmbHQ7PSA1MCwwMDApIFx1YWMxY1x1Yzc1OCBcdWM1OTFcdWJjMjlcdWQ1YTUgXHVhZTM4XHVjNzc0IFx1YWRmOFx1YjgyNFx1YzgzOCBcdWM3ODhcdWFjZTAsJm5ic3A7XHVhYzAxXHVhYzAxXHVjNzU4IFx1YWUzOFx1Yzc0MCBDX2kgKDAgJmx0Oz0gQ19pJm5ic3A7Jmx0Oz0gMSwwMDApIFx1YjljOFx1YjlhY1x1Yzc1OCBcdWMxOGNcdWFjMDAmbmJzcDtcdWM3ODhcdWMyYjVcdWIyYzhcdWIyZTQuIFx1YzE4Y1x1YjRlNFx1Yzc1OCBcdWFlMzhcdWM3NDAgXHViNDUwIFx1YWMxY1x1Yzc1OCBcdWI1YThcdWM1YjRcdWM5YzQgXHVkNWRiXHVhYzA0XHVjNzc4Jm5ic3A7QV9pIFx1YzY0MCZuYnNwO0JfaSAoMSAmbHQ7PSBBX2kgJmx0Oz0gTjsgMSAmbHQ7PSBCX2kgJmx0Oz0gTjsgQV9pICE9IEJfaSlcdWI5N2MgXHVjNzg3XHVjMmI1XHViMmM4XHViMmU0LiBcdWI0NTAmbmJzcDtcdWFjMWNcdWM3NTggXHVkNWRiXHVhYzA0XHVjNzQwIFx1ZDU1OFx1YjA5OCBcdWM3NzRcdWMwYzFcdWM3NTggXHVhZTM4XHViODVjIFx1YzVmMFx1YWNiMFx1YjQxOFx1YzViNCBcdWM3ODhcdWM3NDQgXHVjMjE4XHViM2M0IFx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNC4gXHViMThkXHViZDgwIFx1ZDYwNFx1YzExY1x1YjI5NCBcdWQ1ZGJcdWFjMDQgMVx1YzVkMCBcdWM3ODhcdWFjZTAgXHViMThkXHViZDgwIFx1Y2MyY1x1ZDY0ZFx1Yzc3NFx1YjI5NCBcdWQ1ZGJcdWFjMDQgTlx1YzVkMCBcdWM3ODhcdWMyYjVcdWIyYzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjJlNFx1Yzc0YyBcdWM5YzBcdWIzYzRcdWI5N2MgXHVjYzM4XHVhY2UwXHVkNTU4XHVjMTM4XHVjNjk0LjxcL3A+XHJcblxyXG48cHJlPlxyXG4gICAgICAgICAgIFsyXS0tLVxyXG4gICAgICAgICAgXC8gfCAgICBcXFxyXG4gICAgICAgICBcLzEgfCAgICAgXFwgNlxyXG4gICAgICAgIFwvICAgfCAgICAgIFxcXHJcbiAgICAgWzFdICAgMHwgICAgLS1bM11cclxuICAgICAgICBcXCAgIHwgICBcLyAgICAgXFwyXHJcbiAgICAgICAgNFxcICB8ICBcLzQgICAgICBbNl1cclxuICAgICAgICAgIFxcIHwgXC8gICAgICAgXC8xXHJcbiAgICAgICAgICAgWzRdLS0tLS1bNV0gXHJcbiAgICAgICAgICAgICAgICAzICA8XC9wcmU+XHJcblxyXG48cD5cdWIxOGRcdWJkODAgXHVkNjA0XHVjMTFjXHVhYzAwIFx1YzEyMFx1ZDBkZFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMjk0Jm5ic3A7XHVjZDVjXHVjMTIwXHVjNzU4IFx1ZDFiNVx1Yjg1Y1x1YjI5NCZuYnNwOzEgLSZndDsgMiAtJmd0OyA0IC0mZ3Q7IDUgLSZndDsgNiBcdWM3ODVcdWIyYzhcdWIyZTQuIFx1YzY1Y1x1YjBkMFx1ZDU1OFx1YmE3NCBcdWM1ZWNcdWJiM2NcdWM3NTggXHVjZDFkXHVkNTY5XHVjNzc0IDEgKyAwICsgMyArIDEgPSA1IFx1Yzc3NFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM3ODVcdWIyYzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjE4ZFx1YmQ4MCBcdWQ2MDRcdWMxMWNcdWM3NTggXHVjOWMwXHViM2M0XHVhYzAwIFx1YzhmY1x1YzViNFx1YzljMFx1YWNlMCwmbmJzcDtcdWM5YzBcdWIwOThcdWFjMDBcdWIyOTQgXHVhZTM4XHVjNWQwIFx1YzE4Y1x1Yjk3YyBcdWI5Y2NcdWIwOThcdWJhNzQgXHVjOTE4XHVjNTdjXHVkNTYwIFx1YzVlY1x1YmIzY1x1Yzc1OCBcdWJlNDRcdWM2YTlcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM4IFx1YjU0YyBcdWNkNWNcdWMxOGMgXHVjNWVjXHViYjNjXHVjNzQwIFx1YzViY1x1YjljOFx1Yzc3Y1x1YWU0Y1x1YzY5ND8mbmJzcDtcdWIxOGRcdWJkODAgXHVkNjA0XHVjMTFjXHViMjk0Jm5ic3A7XHVhYzAwXHViMjk0IFx1YWUzOFx1Yzc1OCBcdWFlMzhcdWM3NzRcdWIyOTQgXHVhY2UwXHViODI0XHVkNTU4XHVjOWMwIFx1YzU0YVx1YzJiNVx1YjJjOFx1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgTlx1YWNmYyBNXHVjNzc0IFx1YWNmNVx1YmMzMVx1Yzc0NCBcdWMwYWNcdWM3NzRcdWM1ZDAgXHViNDUwXHVhY2UwIFx1YzhmY1x1YzViNFx1YzlkMVx1YjJjOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViNDU4XHVjOWY4IFx1YzkwNFx1YmQ4MFx1ZDEzMCBNKzFcdWJjODhcdWM5ZjggXHVjOTA0XHVhZTRjXHVjOWMwIFx1YzEzOCBcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4Jm5ic3A7QV9pLCBCX2ksJm5ic3A7Q19pXHVhYzAwIFx1YzhmY1x1YzViNFx1YzlkMVx1YjJjOFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YjE4ZFx1YmQ4MCBcdWQ2MDRcdWMxMWNcdWFjMDAgXHVhYzAwXHVjODM4XHVhYzAwXHVjNTdjIFx1YjQyMCBcdWNkNWNcdWMxOGMgXHVjNWVjXHViYjNjXHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU2OVx1YjJjOFx1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4ifSx7InByb2JsZW1faWQiOiI1OTcyIiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiUGFja2FnZSBEZWxpdmVyeSIsImRlc2NyaXB0aW9uIjoiPHA+RmFybWVyIEpvaG4gbXVzdCBkZWxpdmVyIGEgcGFja2FnZSB0byBGYXJtZXIgRGFuLCBhbmQgaXMgcHJlcGFyaW5nIHRvIG1ha2UgaGlzIGpvdXJuZXkuIFRvIGtlZXAgdGhlIHBlYWNlLCBoZSBnaXZlcyBhIHRhc3R5IHRyZWF0IHRvIGV2ZXJ5IGNvdyB0aGF0IGhlIG1lZXRzIGFsb25nIGhpcyB3YXkgYW5kLCBvZiBjb3Vyc2UsIEZKIGlzIHNvIGZydWdhbCB0aGF0IGhlIHdvdWxkIGxpa2UgdG8gZW5jb3VudGVyIGFzIGZldyBjb3dzIGFzIHBvc3NpYmxlLjxcL3A+XHJcblxyXG48cD5GSiBoYXMgcGxvdHRlZCBhIG1hcCBvZiBOICgxICZsdDs9IE4gJmx0Oz0gNTAsMDAwKSBiYXJucywgY29ubmVjdGVkIGJ5IE0gKDEgJmx0Oz0gTSAmbHQ7PSA1MCwwMDApIGJpLWRpcmVjdGlvbmFsIGNvdyBwYXRocywgZWFjaCB3aXRoIENfaSAoMCAmbHQ7PSBDX2kgJmx0Oz0gMSwwMDApIGNvd3MgYW1ibGluZyBhbG9uZyBpdC4gQSBjb3cgcGF0aCBjb25uZWN0cyB0d28gZGlzdGluY3QgYmFybnMsIEFfaSBhbmQgQl9pICgxICZsdDs9IEFfaSAmbHQ7PSBOOyAxICZsdDs9IEJfaSAmbHQ7PSBOOyBBX2kgIT0gQl9pKS4gVHdvIGJhcm5zIG1heSBiZSBkaXJlY3RseSBjb25uZWN0ZWQgYnkgbW9yZSB0aGFuIG9uZSBwYXRoLiBIZSBpcyBjdXJyZW50bHkgbG9jYXRlZCBhdCBiYXJuIDEsIGFuZCBGYXJtZXIgRGFuIGlzIGxvY2F0ZWQgYXQgYmFybiBOLjxcL3A+XHJcblxyXG48cD5Db25zaWRlciB0aGUgZm9sbG93aW5nIG1hcDo8XC9wPlxyXG5cclxuPHByZT5cclxuICAgICAgICAgICBbMl0tLS1cclxuICAgICAgICAgIFwvIHwgICAgXFxcclxuICAgICAgICAgXC8xIHwgICAgIFxcIDZcclxuICAgICAgICBcLyAgIHwgICAgICBcXFxyXG4gICAgIFsxXSAgIDB8ICAgIC0tWzNdXHJcbiAgICAgICAgXFwgICB8ICAgXC8gICAgIFxcMlxyXG4gICAgICAgIDRcXCAgfCAgXC80ICAgICAgWzZdXHJcbiAgICAgICAgICBcXCB8IFwvICAgICAgIFwvMVxyXG4gICAgICAgICAgIFs0XS0tLS0tWzVdIFxyXG4gICAgICAgICAgICAgICAgMyAgPFwvcHJlPlxyXG5cclxuPHA+VGhlIGJlc3QgcGF0aCBmb3IgRmFybWVyIEpvaG4gdG8gdGFrZSBpcyB0byBnbyBmcm9tIDEgLSZndDsgMiAtJmd0OyA0IC0mZ3Q7IDUgLSZndDsgNiwgYmVjYXVzZSBpdCB3aWxsIGNvc3QgaGltIDEgKyAwICsgMyArIDEgPSA1IHRyZWF0cy48XC9wPlxyXG5cclxuPHA+R2l2ZW4gRkomIzM5O3MgbWFwLCB3aGF0IGlzIHRoZSBtaW5pbWFsIG51bWJlciBvZiB0cmVhdHMgdGhhdCBoZSBzaG91bGQgYnJpbmcgd2l0aCBoaW0sIGdpdmVuIHRoYXQgaGUgd2lsbCBmZWVkIGVhY2ggZGlzdGluY3QgY293IGhlIG1lZXRzIGV4YWN0bHkgb25lIHRyZWF0PyBIZSBkb2VzIG5vdCBjYXJlIGFib3V0IHRoZSBsZW5ndGggb2YgaGlzIGpvdXJuZXkuPFwvcD5cclxuIiwiaW5wdXQiOiI8dWw+XHJcblx0PGxpPkxpbmUgMTogVHdvIHNwYWNlLXNlcGFyYXRlZCBpbnRlZ2VyczogTiBhbmQgTTxcL2xpPlxyXG5cdDxsaT5MaW5lcyAyLi5NKzE6IFRocmVlIHNwYWNlLXNlcGFyYXRlZCBpbnRlZ2VyczogQV9pLCBCX2ksIGFuZCBDX2k8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD4mbmJzcDs8XC9wPlxyXG4iLCJvdXRwdXQiOiI8dWw+XHJcblx0PGxpPkxpbmUgMTogVGhlIG1pbmltdW0gbnVtYmVyIG9mIHRyZWF0cyB0aGF0IEZKIG11c3QgYnJpbmc8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD4mbmJzcDs8XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJFbmdsaXNoIn1d

 

[푼 코드]

#include <iostream>
#include <vector>
#include <queue>
#define MAXNUM 50001
#define INF 987654321
using namespace std;
int N, M;
vector<pair<int,int>> v[MAXNUM];
int d[MAXNUM];
int Solved(int start, int end)
{
	priority_queue<pair<int, int>> pq;
	d[start] = 0;
	pq.push({ 0,start });

	while (!pq.empty())
	{
		int cost = -pq.top().first;
		int cur = pq.top().second;
		pq.pop();

		for (auto iter = v[cur].begin(); iter < v[cur].end(); iter++)
		{
			int i_goal = iter->first;
			int i_cost = iter->second;

			if (d[i_goal] > d[cur] + i_cost)
			{
				d[i_goal] = d[cur] + i_cost;
				pq.push({ -i_cost,i_goal });
			}
		}
	}
	return d[end];
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie();
	cout.tie();
	int s, e, c;

	cin >> N >> M;
	for (int i = 1; i <= N; i++)
	{
		d[i] = INF;
	}
	for (int i = 0; i < M; i++)
	{
		cin >> s >> e >> c;
		v[s].push_back({ e, c });
		v[e].push_back({ s, c });
	}
	cout << Solved(1,N);
	return 0;
}

 

 

#다익스트라 #백준5972 #백준다익스트라 #최단경로알고리즘

728x90
반응형

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

[플로이드–와샬] (백준 2458) 키 순서  (0) 2022.03.15
[플로이드–와샬] (백준 2660) 회장뽑기  (0) 2022.03.15
[다익스트라] (백준 9370) 미확인 도착지  (0) 2022.03.15
[다익스트라] (백준 4485) 녹색 옷 입은 애가 젤다지?  (0) 2022.03.14
[그리디] (백준 1080) 행렬  (0) 2022.03.13
    '알고리즘/백준 알고리즘 공부' 카테고리의 다른 글
    • [플로이드–와샬] (백준 2660) 회장뽑기
    • [다익스트라] (백준 9370) 미확인 도착지
    • [다익스트라] (백준 4485) 녹색 옷 입은 애가 젤다지?
    • [그리디] (백준 1080) 행렬
    chaesoo
    chaesoo

    티스토리툴바