[백준 문제] P9095 1,2,3더하기
# 코드 플러스 강의에서 하드코딩으로 풀어봤길래 한번 끝까지 해보았다 ㅋㅋ 성공
T = int(input())
## 데피니션
def add_sum(a) :
ans = 0
for x1 in range(1,4):
if x1 == a :
ans = ans + 1
for x2 in range(1,4):
if x1 + x2 == a :
ans = ans + 1
for x3 in range(1,4) :
if x1 + x2 + x3 == a :
ans = ans + 1
for x4 in range(1,4) :
if x1 + x2 + x3 + x4 == a :
ans = ans + 1
for x5 in range(1,4) :
if x1 + x2 + x3 + x4 + x5 == a :
ans = ans + 1
for x6 in range(1,4) :
if x1 + x2 + x3 + x4 + x5 + x6 == a:
ans = ans + 1
for x7 in range(1,4) :
if x1 + x2 + x3 + x4 + x5 + x6 + x7 == a :
ans = ans + 1
for x8 in range(1,4) :
if x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 == a :
ans = ans + 1
for x9 in range(1,4) :
if x1 + x2 + x3 + x4 + x5 + x6 + x7 +x8 + x9 == a :
ans = ans + 1
for x10 in range(1,4) :
if x1 + x2 + x3 + x4 + x5 + x6 + x7 +x8 + x9 + x10 == a :
ans = ans + 1
return ans
# 문제 풀이
for _ in range(T):
b = int(input())
print(add_sum(b))
참고 사이트
# 다른분 풀이
t = int(input())
output = []
output.insert(0, 0) # 넣어주지 않으면 list index out of range 에러가 뜸
output.insert(1, 1) # 1을 넣을 경우 경우의 수 1가지(1)
output.insert(2, 2) # 2를 넣을 경우 경우의 수 2가지(1+1, 2)
output.insert(3, 4) # 3을 넣을 경우 경우의 수 3가지 (1+1+1, 1+2, 2+1, 3)
for i in range(0, t):
n = int(input())
for j in range(4, n+1):
output.insert(j, output[j-1] + output[j-2] + output[j-3])
print(output[n])