[파이썬/python] 백준 - 2157 여행
·
알고리즘
문제https://www.acmicpc.net/problem/2157문제 설명1번부터 N번까지 도시가 존재한다.이 중 M개 이하의 도시를 여행해야 한다.여행 경로는 반드시 1번 도시에서 시작해서 N번 도시에서 끝내야한다.1번과 N번 도시도 M개의 도시에 포함된다.무조건 번호가 증가하는 도시로만 이동이 가능하다.먹게 되는 기내식의 점수의 총 합의 최댓값을 구한다.풀이처음에는 DFS로 접근했지만, 나올 수 있는 경우의 수가 300!(N은 최대 300)이기 때문에 시간초과가 발생했다.그래서 다이나믹 프로그래밍을 통해 문제를 풀이했다. 이 문제의 핵심은 바로 M에 존재한다. 1과 2 노드에서 각각 3으로 이동하고 M = 3이라고 가정하자.1 -> 3일 때 도시를 지난 횟수는 3개이고, cost = 10이다.2 ..