- 연습문제
- 피보나치 수
- Level 2
문제
- 2 이상의 n 이 주어졌을 때, n 번째 피보나치 수를 1234567로 나눈 나머지 구하기
Idea
- 반복문으로 피보나치 수 구하기
- 한 번 구한 값은 저장하기
Code
Swift
- 재귀 방식은 시간 초과 및 core dump 에러 뜸
func solution(_ n: Int) -> Int {
var fibonacci = [0, 1]
for i in 2...n {
let next = (fibonacci[i-1] + fibonacci[i-2]) % 1234567
fibonacci.append(next)
}
return fibonacci[n]
}
- 다른 사람 풀이
- 배열에 저장하지 않고 하는 법
func solution(_ n: Int) -> Int {
var n0 = 0, n1 = 1;
for index in 2...n {
if index % 2 == 0 {
n0 = (n0 + n1) % 1234567
} else {
n1 = (n1 + n0) % 1234567
}
}
return n % 2 == 0 ? n0 : n1
}
'# Algorithm > --- 프로그래머스' 카테고리의 다른 글
[카카오] 튜플 (0) | 2022.03.14 |
---|---|
[프로그래머스] 최솟값 만들기 (0) | 2022.01.26 |
[프로그래머스] 행렬의 곱셈 (0) | 2022.01.26 |
[프로그래머스] JadenCase 문자열 만들기 (0) | 2022.01.26 |
[프로그래머스] N개의 최소공배수 (0) | 2022.01.26 |