문제 링크 https://www.acmicpc.net/problem/1446
문제 설명
매일 아침, 세준이는 학교에 가기 위해서 차를 타고 D킬로미터 길이의 고속도로를 지난다. 이 고속도로는 심각하게 커브가 많아서 정말 운전하기도 힘들다. 어느 날, 세준이는 이 고속도로에 지름길이 존재한다는 것을 알게 되었다. 모든 지름길은 일방통행이고, 고속도로를 역주행할 수는 없다.
세준이가 운전해야 하는 거리의 최솟값을 출력하시오.
N, D = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(N)]
dp = [i for i in range(D+1)]
for i in range(D+1):
if i > 0:
dp[i] = min(dp[i], dp[i-1]+1)
for s, e, l in arr:
if i == s and e <= D and dp[i] + l < dp[e]:
dp[e] = dp[i] + l
print(dp[D])
지름길로 다니는 꼼수를 줄이고 정직하게 살아보는건 어떨까요??