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

99클럽 코테 스터디 22일차 TIL 입니다.

[level 2] 멀리 뛰기 - 12914

문제 링크

성능 요약

메모리: 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 이하인 정수입니다.

입출력 예

nresult

4

5

3

3

입출력 예 설명

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

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


풀이 코드

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

Last updated