Make Unreal REAL.
article thumbnail
Level 2. 피보나치 수

 

 

문제 설명이 조금 이상하지 않나 싶다..

 

설명만 보면 피보나치 수열을 모두 구한 후에 1234567로 나눈 나머지를 구하는 건 줄 알았는데, 질문하기 페이지를 보니 매번 F(i)를 1234567로 나눈 나머지를 구해야 하는 것이었다.

 

F(n) = F(n - 2) % m + F(n - 1) % m = {F(n - 2) + F(n - 1)} % m을 활용해 해결했다.

 

피보나치 수열을 구할 때는 전전 숫자와 전 숫자만 알고 있으면 되기 때문에, 굳이 배열을 사용하지 않아도 된다.

 

#include <iostream>

using namespace std;

int solution(int n)
{
    int pp = 0, p = 1, c = 1;

    while (0 < --n)
    {
        c = (pp + p) % 1234567;
        pp = p;
        p = c;
    }

    return c;
}

'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글

Level 2. n^2 배열 자르기  (0) 2023.04.24
Level 2. 무인도 여행  (0) 2023.04.23
Level 2. [1차] 캐시  (0) 2023.04.21
Level 2. 예상 대진표  (0) 2023.04.20
Level 1. 시저 암호  (0) 2023.04.19
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그