[프로그래머스/Python] 피보나치 수

2024. 12. 25. 00:28·CODING_TEST
목차
  1. ※ 문제
  2. ※ 문제 설명
  3. ※ 나의 풀이

※ 문제

https://school.programmers.co.kr/learn/courses/30/lessons/12945

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

※ 문제 설명

피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.

예를들어

  • F(2) = F(0) + F(1) = 0 + 1 = 1
  • F(3) = F(1) + F(2) = 1 + 1 = 2
  • F(4) = F(2) + F(3) = 1 + 2 = 3
  • F(5) = F(3) + F(4) = 2 + 3 = 5

와 같이 이어집니다.

2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.


제한사항

  • n은 2 이상 100,000 이하인 자연수입니다

입출력 예

n return
3 2
5 5

입출력 예 설명

피보나치수는 0번째부터 0, 1, 1, 2, 3, 5, ... 와 같이 이어집니다.

 


※ 나의 풀이

    • 동적 프로그래밍 (DP)로 문제 풀이
    • 제한 사항 2 <= n <= 100,000으로 나와 있으므로, arr[0] * arr(100000 + 1)로 누적합 배열 초기화
    • arr[1] = 1
    • 피보나치 수 F(n) = F(n-1) + F(n-2)
      • 루프를 통해 해결
      • arr[i] += arr[i - 2] + arr[i - 1]을 1234567로 나눈 나머지를 저장
    • 루프를 반복 한 후, 누적합 배열의 n의 인덱스의 값을 호출
def solution(n):
    arr = [0] * (100000 + 1)
    arr[1] = 1
    
    for i in range(2, n + 1):
        arr[i] += (arr[i-2] + arr[i - 1]) % 1234567
    return arr[n]


어려웠던 점

기존 재귀함수를 활용하여 문제를 해결하려고 했으나, 시간초과 발생

def fibo(n):
	if n == 1 or n == 2:
		return n
    else:
    	return (fibo(n-1) + fibo(n-2)) % 1234567

'CODING_TEST' 카테고리의 다른 글

[백준/Python] 1463. 1로 만들기  (1) 2024.12.26
[백준/Python] 5525. IOIOI  (0) 2024.12.26
[프로그래머스/Python] 교점에 별 만들기  (0) 2024.12.24
[프로그래머스/Python] 올바른 괄호  (0) 2024.12.18
[프로그래머스/Python] 옹알이 (2)  (2) 2024.12.17
  1. ※ 문제
  2. ※ 문제 설명
  3. ※ 나의 풀이
'CODING_TEST' 카테고리의 다른 글
  • [백준/Python] 1463. 1로 만들기
  • [백준/Python] 5525. IOIOI
  • [프로그래머스/Python] 교점에 별 만들기
  • [프로그래머스/Python] 올바른 괄호
YAHO_STUDY
YAHO_STUDY
DATA&AI_study.zip
  • YAHO_STUDY
    YAHO_CODE
    YAHO_STUDY
  • 전체
    오늘
    어제
    • 분류 전체보기 (57)
      • Paper Review (0)
      • SQL (16)
      • CODING_TEST (21)
      • Time Series (0)
      • DL (20)
        • NLP (5)
        • LLM&RAG (15)
        • Recommender System (0)
      • 최적화 (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    runpod
    DP
    coding_test
    한 권으로 끝내는 실전 llm 파인튜닝
    양자화
    Lora
    Gemma
    boj
    hash
    RNN
    SQL
    graph
    fine-tuning
    prompt-tuning
    qlora
    Programmers
    quantization
    pagedattention
    PEFT
    MySQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
YAHO_STUDY
[프로그래머스/Python] 피보나치 수

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.