sooleeandtomas

[day7] 코딩테스트 알고리즘 - 연습문제 (멀리뛰기) 피보나치 수열 python 파이썬 (feat.파이썬 다중할당) 본문

코딩테스트 알고리즘/기타

[day7] 코딩테스트 알고리즘 - 연습문제 (멀리뛰기) 피보나치 수열 python 파이썬 (feat.파이썬 다중할당)

sooleeandtomas 2022. 10. 2. 02:23

프로그래머스 lv.2 멀리뛰기 (연습문제)

https://school.programmers.co.kr/learn/courses/30/lessons/12914

 

피보나치 수열 모르는 사람은 정.말 풀기 힘들 것 같다 💢

이 문제는 피보나치 수열을 알아야 풀 수 있다.

문제에서 피보나치 수열이라는 힌트를 얻을 수 있다.

[힌트1] 1칸 또는 2칸

[힌트2] 도달하는 방법이 몇 가지인지 알아내...

 

피보나치 수란?

수학에서 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합 수열이다.

 

문제의 예시에 나오는 경우의 수들을 보면 피보나치 수열이 나온다. 

이런 여러 힌트 조합을 통해 이 문제는 단순히 내가 "피보나치 수열"을 알고있는지를 확인하는 문제이다.

피보나치 수열을 알고있다면, 정말 그대로 구현해주면 된다. 

 

참고 코드1

def solution(n):
    answer = 0
    if n < 3:
        return n % 1234567
    dp = [0] * (n + 1)
    dp[1] = 1
    dp[2] = 2
    
    for i in range(3, n + 1): #이미 앞에서 1,2는 숫자를 지정해줬으니 할 필요가 없다.
	#해서도 안될 것 같다. i가 1이면 (i-2)가 -1쟈나..
        dp[i] = dp[i - 1] + dp[i - 2]
    
    answer = dp[n] % 1234567
    return answer
  
print(solution( 7 ))

 

참고 코드2

def jumpCase(num):
    a, b = 1, 2
    for i in range(2,num):
        a, b = b, a + b
    return b
    
print(jumpCase(4))

 

 

파이선의 다중 할당

코드들을 살펴보니 다중 할당이 되어있다. 파이선의 다중할당으로 동시에 여러 변수에 값을 할당할 수 있다.

a, b = 1, 2
# a : 1
# b : 2

for i in range(3):
	a, b = b, a + b 
    # [0]
    # a : 2
    # b : 3
    
    # [1]
    # a : 3
    # b : 5
    
    # [2]
    # a : 5
    # b : 8
Comments