문제 : 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 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 이런식으로 결국 피보나치 수열의 형태를 나타나게 된다.
이 문제는 단순히 문제만 봐서는 풀지 못하고 전체적인 흐름을 파악해 피보나치 수열임을 알아내는 것이 핵심이었던 문제였다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 피보나치 수 (0) | 2018.04.23 |
---|---|
프로그래머스 시저 암호 (level.3) (0) | 2018.02.26 |
프로그래머스 야근지수 구하기 (level.3) (0) | 2018.02.20 |
프로그래머스 콜라츠 추측 (level.2) (0) | 2018.02.19 |
프로그래머스 정수 내림차순으로 배치하기 (level.2) (0) | 2018.02.19 |
댓글