문제 설명
문제 해결 시도
제한 사항에서 n > 1, n < 100000이라는 조건을 줬다.
n을 1234567로 나눈 나머지를 구하는 코드는 딱히 의미가 없다고 생각했다.
재귀 함수를 이용하여 피보나치 수를 구하도록 프로그램을 만들었고 채점을 진행했다.
def fibo(n):
if n == 0 :
return 0
elif n == 1 :
return 1
else:
return fibo(n - 2) + fibo(n - 1)
def solution(n):
answer = 0
answer = fibo(n)
return answer
시간 초과 및 런타임 에러로 인하여 절반 정도의 테스트만 통과했다.
재귀 함수를 이용한 피보나치 수를 구하는 방법은 실행 속도가 다른 구현 방법에 비해 느리다.
반복문을 이용하여 피보나치 수를 구하는 프로그램을 만들었고 채점을 진행했다.
def fibo(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
e1 = 0
e2 = 1
i = 2
while i<= n:
t = e2
e2 = e2 + e1
e1 = t
i += 1
return e2
def solution(n):
answer = 0
answer = fibo(n)
return answer
실패 및 런타임 에러로 인하여 절반 정도의 테스트만 통과했다.
문제 해결
제한 사항을 봤을 때, 테스트를 통과하지 못할 요소가 존재하지는 않았다.
혹시 몰라서 1234567을 나눈 나머지를 구하는 코드를 추가해봤다.
def fibo(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
e1 = 0
e2 = 1
i = 2
while i<= n:
t = e2
e2 = e2 + e1
e1 = t
i += 1
return e2 % 1234567
def solution(n):
answer = 0
answer = fibo(n)
return answer
코드를 수정한 결과, 테스트를 통과했다.
'Algorithm > 프로그래머스 연습 문제' 카테고리의 다른 글
프로그래머스 / 코딩 테스트 / 내적 (0) | 2020.12.24 |
---|---|
프로그래머스 / 코딩 테스트 / 시저 암호 (0) | 2020.12.24 |
프로그래머스 / 코딩 테스트 / 문자열을 정수로 바꾸기 (0) | 2020.12.24 |
프로그래머스 / 코딩 테스트 / 수박수박수박수박수박수? (0) | 2020.12.24 |
프로그래머스 / 코딩 테스트 / 두 개 뽑아서 더하기 (0) | 2020.12.24 |