DP 이용해서 

26 40 83 

49 60 57 

13 89 99

라면 

( i = 0 )

min(49,60,57) = 49 

57 !=49 이므로 49 부터 타고 올라오면 값이 더 작아질지 비교 

26-> 57 vs 40 ->49 

=> 26 -> 57 

( i = 1 )

min(13,89,99) = 13

26 부터 타고 내려갔을 때랑 13 동일하므로 continue

26 -> 57 -> 13 

이런 식으로 값을 구했는데 

10
84 78 43
25 24 56
24 22 63
24 61 34
64 68 32
12 42 33
25 64 53
74 92 63
74 61 54
34 68 32

결과 : 369

여기서 막혔습니다.

[43, 25,22 24, 32, 12, 53, 74, 54, 34] -> 373 이 나와버려요 ㅠㅠ

접근 방식에서 무엇을 변경해야할지 질문드립니다 !

중간 중간 제가 값을 찍어보려고 사이 과정도 같이 print 해보았습니다.

최종 답은 print(summ) 입니다 

terrryahn78   2년 전

이 코드는  DP 가 아니라 DFS에 가깝습니다.

위 코드의 반례로

3

123

112

212

가 있습니다.


모든 경우를 따지기 위해서는 합을 누적하는 알고리즘이 필요합니다.

코드를 아래에 첨부하겠습니다.

댓글을 작성하려면 로그인해야 합니다.