BOJ:移動[15989]
6125 ワード
1.質問
整数4を1,2,3の和と表す方法は4種類ある.和を表すときは1つ以上の数を使います.構成和の数だけ順序が違うのは同じです.
1+1+1+1
2+1+1 (1+1+2, 1+2+1)
2+2
1+3 (3+1)
整数nが与えられると、nが1、2、3の和で表される方法の数を求めるプログラムが作成される.
出典:https://www.acmicpc.net/problem/15989
2.アイデア
3.コード
mineimport sys
n = int(input())
for _ in range(n):
dp = [[1,0,0],[1,1,0],[1,1,1]]
a = int(input())
if a<=3:
print(sum(dp[a-1]))
continue
for i in range(3, a+1):
tmp = []
tmp.append(dp[i-1][0])
tmp.append(dp[i-2][0]+dp[i-2][1])
tmp.append(dp[i-3][2]+dp[i-3][1]+dp[i-3][0])
dp.append(tmp)
print(sum(dp[a-1]))
Reference
この問題について(BOJ:移動[15989]), 我々は、より多くの情報をここで見つけました
https://velog.io/@onejh96__/BOJ-이동하기-11048
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import sys
n = int(input())
for _ in range(n):
dp = [[1,0,0],[1,1,0],[1,1,1]]
a = int(input())
if a<=3:
print(sum(dp[a-1]))
continue
for i in range(3, a+1):
tmp = []
tmp.append(dp[i-1][0])
tmp.append(dp[i-2][0]+dp[i-2][1])
tmp.append(dp[i-3][2]+dp[i-3][1]+dp[i-3][0])
dp.append(tmp)
print(sum(dp[a-1]))
Reference
この問題について(BOJ:移動[15989]), 我々は、より多くの情報をここで見つけました https://velog.io/@onejh96__/BOJ-이동하기-11048テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol