동적 계획법 예제 - 3

문제 분석

  • 이친수의 개수와 관련된 요소를 먼저 찾아보면 가장 먼저 자릿수가 중요하다.

  • 그리고 0으로 끝나는 이친수와 1로 끝나는 이친수를 구분해서 생각할 수 있다.

  • 이 문제에서 점화식은 유일하지 않고 다양하게 나올 수 있다.

  • 2차원 배열 점화식(dp[N][2])을 선언하고 문제에 접근해본다.

손으로 풀어보기

  1. 점화식의 형태와 의미를 도출한다.

    • dp[i][0] = i 길이에서 끝이 0으로 끝나는 이친수의 개수

    • dp[i][1] = i 길이에서 끝이 1로 끝나는 이친수의 개수

  2. 점화식을 구한다. 1은 두 번 연속으로 나오지 않는다는 조건이 점화식을 구하는 핵심이다.

img_4.png
  1. 점화식을 이용해 dp 테이블을 채운 후 dp[N][0] + dp[N][1]의 값을 출력한다.

img_5.png

슈도코드

코드 구현 - 파이썬

코드 구현 - 자바

Last updated