728x90
반응형
https://www.acmicpc.net/problem/1446
1446번: 지름길
첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하인 양의 정수이고, D는 10,000보다 작거나 같은 자연수이다. 다음 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이
www.acmicpc.net
1. Logic
문제를 보자마자 직관적으로 같은 지점을 지나가야하는 중복 문제가 보여서 DP로 접근했다.
2. Code
#include <bits/stdc++.h>
using namespace std;
int n, d;
vector<pair<int, int>> arr[10001];
int dp[10001];
int solve(int location) {
if(location == d) return 0;
int &ret = dp[location];
if(ret != -1) return ret;
ret = 0x3f3f3f3f;
if(!arr[location].empty()) {
for(int i = 0; i < arr[location].size(); i++) {
if(arr[location][i].first > d) continue;
ret = min(ret, solve(arr[location][i].first) + arr[location][i].second);
}
}
ret = min(ret, solve(location+1)+1);
return ret;
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
memset(dp, -1, sizeof(dp));
cin >> n >> d;
for(int i = 0; i < n; i++) {
int s, e, leng;
cin >> s >> e >> leng;
arr[s].push_back({e, leng});
}
cout << solve(0);
}
알고리즘 Solve 후 제가 생각한 Logic을 기록하는 개인 공부 블로그입니다.
내용 중 최적화가 가능한 부분등은 언제든지 댓글로 틀린 부분 및 피드백 주시면 공부 및 반영하겠습니다🧐
728x90
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
[백준/Baekjoon] 1996 지뢰찾기 C++ :: Implementation (1) | 2024.01.11 |
---|---|
[백준/Baekjoon] 1937 욕심쟁이 판다 C++ :: DFS & Dynamic Programming (1) | 2024.01.10 |
[백준/Baekjoon] 2665 미로만들기 C++ :: BFS & Dijkstra (0) | 2024.01.06 |
[백준/Baekjoon] 17070 파이프 옮기기 1 C++ :: Implementation (1) | 2024.01.05 |
[백준/Baekjoon] 9328 열쇠 C++ :: BFS (2) | 2024.01.04 |