programmers_level2_land (동적프로그래밍,DP)
2021. 11. 8.
바로 문제를 보자. 문제는 위와 같다. 처음에는 보자마자 각 행에 있는 최댓값을 골라 더해주면서 만약 어떤 행의 최댓값 인덱스가 앞 행의 최댓값 인덱스와 겹치면 그 인덱스의 값을 0으로 바꿔버리고, 그중에서의 최댓값을 출력하는 식으로 코드를 짜 봤다. 문제 예제에 나와있는 예시는 쉽게 통과할 수 있었다. 하지만, 한 행에 최댓값이 여러 개일 경우 더 좋은 길이 있음에도 그 부분을 택하지 못했다. 예를 들어 [[4,3,2,1], [2,2,2,1], [6,6,6,4], [8,7,6,5]]라는 배열이 있다고 해보자. 두 번째 행에서 최댓값인 2가 3개이므로 코드는 맨 앞에 있는 2를 선택해야 하지만, 첫 번째행과의 인덱스가 겹치기 때문에 가장 인접해있는 두 번째 인덱스인 2를 선택한다. 그리고 세 번째 행에서..