[백준 문제] 9095번 1, 2, 3 더하기 재귀함수 사용 (파이썬)


[백준 문제] 9095번 1, 2, 3 더하기 재귀함수 사용 (파이썬)

첫 재귀함수 여행기
재귀함수 사용이 어워서 좀 더 공부할 필요있겠다.

1) 불가능한 경우 sum > goal 은 0
2) 정답을 찾은 경우 sum == goal 은 1
3) for문은 숫자를 사용할때마다 그 숫자를 더하고 다시 함수 돌려서 답이 나올때 1을 호출하는 방식(결국 싹다 돌린다.)

def go(sum, goal) :
    if (sum > goal) :
        return 0
    if (sum == goal) :
        return 1
    now = 0
    for i in range(1,4) :
        now += go(sum+i, goal)
    return now;

def go(sum, goal) :
    if (sum > goal) :
        return 0
    if (sum == goal) :
        return 1
    now = 0
    for i in range(1,4) :
        now += go(sum+i, goal)
    return now;

n = int(input())
for _ in range(n) :
    print(go(0, int(input())))
3
4
7
20
121415
10
274





© 2018. by statssy

Powered by statssy