# \[99클럽 코테 스터디 22일차 TIL]  프로그래머스 - 멀리 뛰기

## \[level 2] 멀리 뛰기 - 12914

[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/12914?language=java)

#### 성능 요약

메모리: 76.4 MB, 시간: 0.18 ms

#### 문제 설명

효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는\
(1칸, 1칸, 1칸, 1칸)\
(1칸, 2칸, 1칸)\
(1칸, 1칸, 2칸)\
(2칸, 1칸, 1칸)\
(2칸, 2칸)\
의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.

**제한 사항**

* n은 1 이상, 2000 이하인 정수입니다.

**입출력 예**

| n | result |
| - | ------ |
| 4 | 5      |
| 3 | 3      |

**입출력 예 설명**

입출력 예 #1\
위에서 설명한 내용과 같습니다.

입출력 예 #2\
(2칸, 1칸)\
(1칸, 2칸)\
(1칸, 1칸, 1칸)\
총 3가지 방법으로 멀리 뛸 수 있습니다.

***

## 풀이 코드

```java
class Solution {
    public long solution(int n) {
        if (n < 3) return n;
        long[] jump = new long[n + 1];
        jump[1] = 1;
        jump[2] = 2;
        for (int i = 3; i < n + 1; i++) {
            jump[i] = (jump[i - 1] + jump[i - 2]) % 1234567;
        }
        return (long) jump[n];
    }
}
```

* Time: 0.18 ms
* Memory: 76.4 MB

처음엔 칸 수에 따른 멀리 뛰는 방법의 개수가 피보나치 수열 규칙인지 알지 못해서 좀 헤맸다. 그리고 `n` 이 2 일 때, `jump[2] = 2` 에서 에러가 나는걸 잡지 못해서 페어 프로그래밍 파트너 분이 힌트를 줘서 맞출 수 있었다.

피보나치 수열 규칙 안쓰고도 풀 수 있을 것 같단 생각이 찜찜하게 남는다.

***

## 돌아보기

편도염으로 문제에 집중이 안됐고 피보나치 수열 안쓰고도 풀어보고 싶다.

### 다음에는

* 몸 관리 잘하기
* 테스트 케이스 하나하나 잡아가기

***

\#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL
