9095-s3 성공
This commit is contained in:
36
workbook_7319/silver/9095-s3.py
Normal file
36
workbook_7319/silver/9095-s3.py
Normal file
@@ -0,0 +1,36 @@
|
||||
# 1,2,3 더하기
|
||||
|
||||
import sys
|
||||
|
||||
input = sys.stdin.readline
|
||||
|
||||
def solution():
|
||||
t = int(input().rstrip())
|
||||
|
||||
dp = [0] * (11)
|
||||
dp[0] = 1
|
||||
dp[1] = 1
|
||||
dp[2] = 2
|
||||
|
||||
for i in range(3, 11):
|
||||
dp[i] = dp[i-1]+dp[i-2]+dp[i-3]
|
||||
|
||||
for _ in range(t):
|
||||
n = int(input().rstrip())
|
||||
print(dp[n])
|
||||
|
||||
return
|
||||
|
||||
|
||||
solution()
|
||||
|
||||
"""
|
||||
걸린 시간: 20분
|
||||
|
||||
시간 복잡도: n개의 dp 테이블을 한번만 채우면 되기 때문에 O(n)이다.
|
||||
|
||||
해설: 이 문제는 순서가 다른 것은 다르게 보는 순열이다. 따라서 순서를 고정하지 않고, 자유도를 주어서 현재 보는 수로 오기 위해 +1, +2, +3을 한 수들의
|
||||
모든 경우를 다 더하면 된다.
|
||||
반면 순서가 달라도 같은 것으로 보는 조합의 경우에는 순서를 고정시켜줘야 한다. 따라서 1만 썼을 때 경우의 수를 다 계산하고, 2를 썼을 때 경우, 3을 썼을 때 경우,
|
||||
이렇게 나누면 순서가 고정되어 자동으로 조합 계산을 한 것처럼 된다.
|
||||
"""
|
||||
Reference in New Issue
Block a user