피보나치 수
풀이
처음엔 재귀함수로 시도해 봤으나, 시간도 오래 걸리고, maximum deepth 에러가 생겨서 실패했다.
그래서 while문을 이용해봤고 아래처럼 진행을 했다.
1. F=[0,1,2] 변수를 생성
2. n = 2일 때는 1을 반환시키고 이게 아니라면, while문에 입장
3. i변수를 이용해서 n과 동일해질때의 값을 반환할 수 있게 제약 걸고, while문 내에서는 F.append() 대신 [0], [1], [2]를 계속해서 바꿔주는 방식으로 이용. 이유 append()도 은근히 시간이 걸리는 녀석임
4. while문을 벗어나면 F[2] 즉, n번째가 되는 값을 1234567로 나눈 나머지를 반환. 이때 n번째는 0번째부터 새는 n번째.
def solution(n):
F = [0, 1, 1]
if n == 2:
return 1
i = 2
while i < n:
i += 1
F[0], F[1] = F[1], F[2]
F[2] = F[0] + F[1]
return F[2] % 1234567
다른 사람 풀이
아.. 더 쉽게 푼 게 있었다. 똑똑한 청년들이 너무 많다.
def fibonacci(num):
a, b = 0, 1
for i in range(num):
a, b = b, a+b
return a
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv2 짝지어 제거하기 (python) (0) | 2024.02.05 |
---|---|
프로그래머스 Lv2 멀리 뛰기 (python) (0) | 2024.02.04 |
프로그래머스 Lv2 의상 (python) (2) | 2024.02.04 |
프로그래머스 Lv2 전화번호 목록 (python) (0) | 2024.02.03 |
프로그래머스 Lv2 N-Queen (python) (1) | 2024.02.03 |