[백준 문제] P9095 1,2,3더하기


[백준 문제] 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))
3
4
7
7
44
10
274

참고 사이트

# 다른분 풀이
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])

3
4
7
7
44
10
274





© 2018. by statssy

Powered by statssy