본문 바로가기
알고리즘/프로그래머스

프로그래머스 멀리뛰기 (level.3)

by 코리늬 2018. 2. 21.

문제 : 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 

칸이 총 4개 있을 때, 효진이는

(1칸, 1칸, 1칸, 1칸)

(1칸, 2칸, 1칸)

(1칸, 1칸, 2칸)

(2칸, 1칸, 1칸)

(2칸, 2칸)

의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 

멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 출력하는 jumpCase 함수를 완성하세요. 

예를 들어 4가 입력된다면, 5를 반환해 주면 됩니다.


이 문제는 단순히 4칸을 가는 방법에 대해서만 구하려고 노력을 했었다. 그러다보니 답을 구하지 못했다.

알고보니 전체에 대한 흐름을 봐야지 풀 수 있는 문제였다.

1칸이 있을 때 = 1(1개)

2칸이 있을 때 = 1+1, 2(2개)

3칸이 있을 때 = 1+1+1, 1+2, 2+1(3개)

4칸이 있을 때 = 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2(5개)

5칸이 있을 때 = (8개) 


1, 2, 3 ,5, 8 이런식으로 결국 피보나치 수열의 형태를 나타나게 된다.

이 문제는 단순히 문제만 봐서는 풀지 못하고 전체적인 흐름을 파악해 피보나치 수열임을 알아내는 것이 핵심이었던 문제였다.


댓글