def checkminNumber(index,open1,open2): if index > M-1: return 0 result = dp[index][open1][open2] if result != float('inf'): return result next_open = output_list[index] dp[index][open1][open2] = min(abs(open1 - next_open) + checkminNumber(index+1,next_open,open2), abs(open2 - next_open) + checkminNumber(index+1,open1,next_open)) return dp[index][open1][open2] N = int(input()) open1,open2 = list(map(int,input().split())) M = int(input()) dp = [[[float('inf')]*(N+1) for _ in range(N+1)] for _ in range(M)] output_list = [] for _ in range(M): output_list.append(int(input())) print(checkminNumber(0,open1,open2))
'알고리즘 > 백준_복기_미완료' 카테고리의 다른 글
[BOJ/백준] 2825 수업시간에 교수님 몰래 교실을 빠져나간 상근이 (0) | 2021.05.03 |
---|---|
[BOJ/백준] 2688 줄어들지 않아 (0) | 2021.05.03 |
[BOJ/백준] 2458 키순서 (0) | 2021.05.03 |
[BOJ/백준] 2436 공약수 (0) | 2021.05.02 |
[BOJ/백준] 2122 센서 (0) | 2021.05.02 |