티스토리 뷰

PS

백준 15990. 1,2,3 더하기 5

tose33 2022. 6. 22. 17:18

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

 

15990번: 1, 2, 3 더하기 5

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

www.acmicpc.net

 

좀 더 풀어보기로 한 dp 문제.

 

중요한 부분은 같은 수를 연속으로 쓸수 없다는 것.

d[100010][3] 배열을 만든다. 

각 행은 숫자를 뜻하고, 열은 순서대로 1로 끝나는 경우, 2로 끝나는 경우, 3으로 끝나는 경우이다. 

 

d[1] = {1, 0, 0} // 1

d[2] = {0, 1, 0} // 2 

d[3] = {1,1,1} // 1+2, 2+1, 3

...

 

1로 끝나는 경우 : i-1 번째 숫자 + 1

2로 끝나는 경우 : i-2 번째 숫자 + 2

3로 끝나는 경우 : i-3 번째 숫자 + 3

 

그런데 같은 수를 연속해서 쓸수 없으므로 i-j번째 숫자라면 j로 끝나는 방법은 제외해야한다.

 

즉 점화식은 

d[i][0] = (d[i-1][1] + d[i-1][2]) % MOD;
d[i][1] = (d[i-2][0] + d[i-2][2]) % MOD;
d[i][2] = (d[i-3][0] + d[i-3][1]) % MOD;

 

 

'PS' 카테고리의 다른 글

백준 1965. 상자넣기  (0) 2022.06.23
백준 3967. 매직 스타  (0) 2022.06.23
백준 10836. 여왕벌  (0) 2022.06.22
백준 9625. BABBA  (0) 2022.06.21
백준 9207. 페그 솔리테어  (0) 2022.06.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함