https://www.acmicpc.net/problem/15991

 

15991번: 1, 2, 3 더하기 6

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다.

www.acmicpc.net

다이나믹 프로그래밍 문제다.

 

풀이

우선 1부터 6까지 1,2,3을 이용한 대칭 수식을 생각하면 점화식을 위한 조건이 만들어진다.

7부터는 앞서 생각한 경우의 수식에 양쪽으로 1+...+1, 2+...+2, 3+...+3의 형태로 대칭으로 늘려나가면 된다.

즉 dp[num] = dp[num-2] + dp[num-4] + dp[num-6]이라는 점화식을 세울 수 있다.

7부터 100,000까지 반복문을 돌려 정답배열을 만든후 입력값을 인덱스로 정답을 출력하면 된다.

 

정답 코드

점화식을 세우는건 항상 어렵다..,

'Problem Solving > BOJ' 카테고리의 다른 글

[25587] 배수로  (0) 2022.12.29
[2350] 대운하  (0) 2022.12.25
[2232] 지뢰  (0) 2022.12.21
[2143] 두 배열의 합  (0) 2022.12.20
[2610] 회의준비  (0) 2022.12.19

+ Recent posts