멀리 뛰기

2025. 5. 29. 14:25·코딩 테스트/프로그래머스

문제

문제 풀이

1. 처음에는 DFS로 풀 생각을 했다.

예제와 동일하게 칸 수가 4인 경우에 대한 경우의 수, DFS로 풀면 이렇게 된다.

1.1 예제 케이스는 통과하나 코드 제출 시 시간 초과가 발생했다.

 

2. 칸 수에 따른 경우의 수를 1~5까지 비교해 본 결과 규칙이 있는 것을 알 수 있었다.

ex) 1칸 - 1개

      2칸 - 2개

      3칸 - 3개

      4칸 - 5개

      5칸 - 8개

=> n칸 = n-1칸의 경우의 수 + n-2칸의 경우의 수. 즉, 피보나치 수열의 형태를 하고 있다.

 

2-1. 위에서 나온 식을 이용하여 반복문을 사용하여 vector에 결과를 기록하고 해당 번호의 수를 나머지 연산을 통해 반환하면 된다.

 

코드

#include <vector>

using namespace std;

long long solution(int n)
{
    // 한 번에 1칸 혹은 2칸을 뛸 수 있다.
    // 칸이 총 1칸이면
    // 경우의 수는 1로 1개
    // 칸이 2칸이면
    // 경우의 수는 1-1, 2로 2개
    // 칸이 3칸이면
    // 경우의 수는 1-1-1, 1-2, 2-1 => 3개
    // 칸이 4칸이면
    // 경우의 수는 1-1-1-1, ... 예시와 동일 => 5개
    // 칸이 5칸이면
    // 경우의 수는 8개
    // 1-1-1-1-1
    // 1-1-1-2
    // 1-1-2-1
    // 1-2-1-1
    // 1-2-2
    // 2-1-1-1
    // 2-1-2
    // 2-2-1
    // 즉, f(n) = f(n - 2) + f(n - 1)가 되는 경향을 뛴다.
        
    vector<long long> Fibonazzi(n + 1);
    
    Fibonazzi[0] = 1;
    Fibonazzi[1] = 1;
    for(int IDX = 2; IDX <= n; ++IDX)
    {
        Fibonazzi[IDX] = (Fibonazzi[IDX - 2] + Fibonazzi[IDX -1]) % 1234567;
    }
    
    return Fibonazzi[n];
}

 

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

귤 고르기  (1) 2025.05.30
예상 대진표  (0) 2025.05.28
달리기 경주  (0) 2025.03.24
개인정보 수집 유효기간  (0) 2025.03.13
바탕화면 정리  (0) 2025.03.11
'코딩 테스트/프로그래머스' 카테고리의 다른 글
  • 귤 고르기
  • 예상 대진표
  • 달리기 경주
  • 개인정보 수집 유효기간
DevJoo1120
DevJoo1120
  • DevJoo1120
    Jin's Programming
    DevJoo1120
  • 전체
    오늘
    어제
    • 분류 전체보기 (142)
      • 포트폴리오 (7)
        • Castlevania: Aria of Sorrow.. (7)
        • [UE5] KILL Everything (0)
      • C++ (0)
      • 라이브러리 (1)
      • 다이렉트X11 (0)
      • Unreal Engine (11)
        • Unreal Document (1)
        • 이것 저것 (8)
        • UI (1)
      • 자료구조 및 알고리즘 (0)
      • 책 정리 (3)
        • 코딩 테스트 합격자 되기 C++ 편 (10)
      • 코딩 테스트 (32)
        • 프로그래머스 (32)
      • 스파르타 코딩 언리얼 1기 (9)
        • 특강 (0)
        • C++와 Unreal Engine으로 3D .. (2)
      • TIL(Today I Learned) (63)
      • 영어 공부 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Til
    팀 프로젝트
    이중 반복문
    책 정리
    배열
    Study
    문자열
    C++
    코딩 테스트
    과제
    map
    코딩테스트
    프로그래머스
    WINAPI
    Unreal Engine 5
    반복문
    정렬
    스파르타 코딩 클럽
    코딩 테스트 합격자 되기 c++ 편
    정리
  • hELLO· Designed By정상우.v4.10.5
DevJoo1120
멀리 뛰기
상단으로

티스토리툴바