본문 바로가기
Algorithm 💫/Problem Solving

[백준] 1446번: 지름길 / C++

by 돼지고기맛있다 2021. 9. 27.
반응형

✏️ 문제 링크

https://www.acmicpc.net/problem/1446

 

1446번: 지름길

첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하이고, D는 10,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이가 주

www.acmicpc.net

 

✏️ 문제 설명 (더보기 클릭 👆🏻)

 

✏️ 문제 코드

#include <bits/stdc++.h>

#define MAX 10001
#define INF 987654321

using namespace std;
using pii=pair<int, int>;

vector<pii> vec[MAX];
vector<int> dist(MAX, INF);

int main(){
    int N, D; cin>>N>>D;
    
    while(N--){
        int s,e,w; cin>>s>>e>>w;
        if(e>D)continue;
        vec[e].push_back({s, w});
    }
    
    dist[0]=0;
    
    for(int i=1; i<=D; i++){
        if(vec[i].size()==0) dist[i]=dist[i-1]+1;
        else{
            for(auto d: vec[i])
                dist[i]=min(dist[i], min(dist[i-1]+1, dist[d.first]+d.second));
        }
    }

    cout<<dist[D];
    
    return 0;
}

 

 

🚩 참고 사이트

https://astrid-dm.tistory.com/439

 

백준 1446번 지름길 (C++)

문제 링크 : https://www.acmicpc.net/problem/1446 1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하이고, D는 10,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄.

astrid-dm.tistory.com

 

 

 ⭐ if feedback and question : comment please⭐  

 

 

 

 

 

반응형

댓글