2n개의 스티커 중에서 점수의 합이 최대가 되면서 서로 변을 공유 하지 않는 스티커 집합을 구해야 한다. 단순히 dp2차원 배열을 만들어서 각 대각선의 합을 구하면 될 것 같지만. 예시로 나온 출처: https://www.acmicpc.net/problem/9465
이 그림의 점수를 선택하는 것을 보았을 때, 100 다음 줄에 있는 10과 40을 선택한다 하더라도 60이 더 크기 때문에 60을 선택하는 모습을 볼 수 있다.
만약 숫자가 50, 10, 100 30, 50, 70 인 경우를 생각해보자. 숫자를 선택하는 경우는 총 4가지이다. 0번 인덱스를 골랐을 때, (여기서 0번 인덱스는 0행을 의미합니다.) 50, 10, 100 50, 10, 100 30, 50, 70 30, 50, 70
1번 인덱스를 골랐을 때, (여기서 1번 인덱스는 1행을 의미합니다.) 50, 10, 100 50, 10, 100 30, 50, 70 30, 50, 70 따라서 이를 통해
첫번째 시도에 점화식을 이끌어 내는 것은 성공하였지만 이를 코드로 작성하는 것이 조금 어려웠다. 나는 dp에 마지막 더한 숫자의 인덱스를 넣을 생각을 했었는데, 이러니까 코드의 양도 많아지고 생각할 것도 많았다. dp를 이루는 큰 줄기가 2개 밖에 되지 않기 때문에 두가지 경우의 수를 모두 구하는 것이 더 좋은 방법인 것 같다.
댓글