스티커 모으기(2)

송지용·2020년 2월 10일
0

algorithm

목록 보기
46/50

https://programmers.co.kr/learn/courses/30/lessons/12971

  • flow
    이 문제는 단순하게 동적 프로그래밍(dp) 로 풀 수 있는 문제이다. 초기 위치부터 나아갈 때 f(n) = max(f(n-1),f(n-2)+sticker[n]) 이런 점화식을 dynamic programming 으로 구현하면 된다. 주의해야 할 점들로는 먼저 초기값을 3가지 경우에 대해서 각각 dp 해야 한다. (인접한 임의의 초기값 3가지일때, 1번을 포함하는 경우, 2번을 포함하는 경우, 3번을 포함하는 경우) 그리고 배열에서 예를 들어, 첫번째 값을 포함했을 때, 마지막 값은 인접해 있으므로 제외 해줘야 되기 때문에 반복문을 n-2번째 까지만 돌려서 f(n) 값을 구해야 한다.

  • result
    https://github.com/songjy6565/alg-py/blob/master/programmers/level4/A12971.py

0개의 댓글