rueki

프로그래머스 LV2 멀리뛰기(DP) 본문

프로그래머스 연습

프로그래머스 LV2 멀리뛰기(DP)

륵기 2022. 10. 7. 17:17
728x90
반응형

첫번째 칸에는 1로만 뛸 수 있는 경우 - 1

두번째 칸에는 2로만 뛸 수 있는 경우와 1로만 뛸 수 있는 경우 - 2

세번째 부터는 1, 2 이용해서 뛸 수 있는 경우 - 3

 

점화식 세워서 푸는 문제였다.

 

 

def solution(n):
    if n<3:
        return n
    d=[0]*(n+1)
    d[1]=1
    d[2]=2
    for i in range(3,n+1):
        d[i]=d[i-1]+d[i-2]
    return d[n]%1234567

 

 

- dfs 풀이는 시간 초과 발생..

cnt = 0


def dfs(number, n):
    global cnt
    
    
    if number < n:
        number = number%1234567
        dfs(number + 1, n)
        dfs(number + 2, n)
    
    if number == n:
        cnt += 1
        return
        

def solution(n):
    dfs(0, n)
    answer = cnt % 1234567
    return answer
728x90
반응형
Comments