코테 노트/프로그래머스

Level 3 멀리 뛰기 Python 3

화요밍 2021. 7. 27. 01:58
728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/12914?language=python3 

 

코딩테스트 연습 - 멀리 뛰기

효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2

programmers.co.kr

 

최종 풀이

 

GitHub - hwayeon351/Programmers-Algorithms: 프로그래머스 알고리즘 소스 코드 모음

프로그래머스 알고리즘 소스 코드 모음. Contribute to hwayeon351/Programmers-Algorithms development by creating an account on GitHub.

github.com

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

풀이 과정

 규칙을 찾기 위해 N이 1~6일 경우 경우의 수를 구해보았다.

N 경우의 수 answer
1 1 1
2 11, 2 2
3 111, 12, 21 3
4 1111, 112, 121, 211, 22 5
5 11111, 1112, 1121, 1211, 2111, 122, 212, 221 8
6 111111,11112,11121, 11211, 12111, 21111, 1122, 1212, 1221, 2112, 2121, 2211, 222 13

dp[i] = dp[i-2] + dp[i-1]인 피보나치 수열이다.

def solution(n):
    dp = [0]*(n+1)
    dp[0] = 1
    dp[1] = 1
    for i in range(2, n+1):
        dp[i] = (dp[i-2] + dp[i-1])%1234567
    return dp[n]
#시간복잡도 = O(n), 공간복잡도 = O(n)

 

728x90
반응형