반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12945?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 (1차 시도)
def fibonacci(m):
if m == 1 or m == 2:
return 1
else:
return fibonacci(m-1) + fibonacci(m-2)
def solution(n):
answer = fibonacci(n)
return answer
Or
def solution(n):
if n == 1 or n == 2:
return 1
else:
return solution(n-1) + solution(n-2)
재귀 함수로는 효율성 때문에 풀수 없다.
for 문을 사용해서 풀어야 한다.
더보기
힌트 내용
재귀 호출 대신 for문을 사용해서 첫 번째, 두 번째, 세 번째, ..., n번째 피보나치 수를 순서대로 구해보세요.
이러한 풀이 방식을 동적 계획법(Dynamic Programming)이라고 합니다.
풀이 (2차시도)
def solution(n):
a = 1
b = 1
if n == 1 or n == 2:
return 1
for i in range(1, n):
a, b = b, b + a
return a
반응형
'코딩 테스트 > Programmers' 카테고리의 다른 글
[Python] [Level 2] 다음 큰 숫자 (bin 함수, count 함수 활용하기) (0) | 2022.10.08 |
---|---|
[Python] [Level 2] 이진 변환 반복하기 (0) | 2022.10.08 |
[Python] [Level 2] 숫자의 표현 (약수 구하기, divmod로 나머지 활용하기) (0) | 2022.10.04 |
[Python] [Level 2] 올바른 괄호 (replace 함수, find 함수, count 함수 활용하기) (1) | 2022.09.30 |
[Python] [Level 2] 최솟값 만들기 (0) | 2022.09.26 |