728x90
반응형
https://www.acmicpc.net/problem/1446
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 |