알고리즘(백준)/구현
[알고리즘/구현] 10870번 : 피보나치 수열 - python
되다
2023. 2. 27. 15:38
링크 : https://www.acmicpc.net/problem/10870
- 문제
- 소요시간: 5분 12초
- 설계하기(접근방법)
1. n을 입력받는다
2. result, n_1, n_2 변수를 3개 선언한다.
3. result = n_1+n_2 형태로 피보나치 수열을 구한 후 다음 반복문에서
n_2= n_1이되고 (아래 식과 순서가 바뀌지 않게 주의해야 한다)
n_1 = result가 된다
본문에서 0번째부터 수열을 구하니 range는 n-1로 한다(0,1번째는 주어졌고 2번째부터 피보나치 수열을 시작한다. 즉 2번째가 반복문에서는 첫번째 순회가 되어야하므로 range의 범위를 n-1로 한다)
예외 사항인 0번째와 1번째는 if문으로 따로 처리한다.
4. 결과를 출력한다.
- 코드(출력)
n = int(input())
result = 0
n_2 = 0
n_1 = 1
if n == 0:
print(0)
elif n == 1:
print(1)
else:
for _ in range(n-1):
result = n_1 + n_2
n_2 = n_1
n_1 = result
print(result)
- 얻어갈 부분
1. print(result) 메서드를 이용할 때 else외에 두면 1일 때 결과가 2번 출력된다.(주의)
2. 변수를 초기화하는 순서를 주의하자. 수열이 꼬일 수도 있다.