Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- #abc부트캠프 #유클리드소프트 #고용노동부 #대한상공회의소 #미래내일일경험사업
- #abc 프로젝트 멘토링 #유클리드소프트 #고용노동부 #대한상공회의소 #미래내일일경험사업 #공부일지 #멘토링일지
Archives
- Today
- Total
나른한 코딩 생활
피보나치 비스무리한 수열 본문
기존 피보나치 수열을 제작할 때의 수열을 변형하여 작성한다
num = int(input(''))
간단하게 입력받은 수 num
이제 수열을 함수화하자.
def like_fibo(n):
seq = [1,1,1]
for i in range(3,n):
seq.append(seq[i-1]+seq[i-3])
return seq[n-1]
이후 마지막 print 문을 작성하면 코드는 쉽게 완성된다.
print(like_fibo(num))
이렇게 완성된 코드는 다음과 같다
num = int(input(''))
def like_fibo(n):
seq = [1,1,1]
for i in range(3,n):
seq.append(seq[i-1]+seq[i-3])
return seq[n-1]
print(like_fibo(num))
위 코드를 정답을 제출하면 정답을 맞출 것이다.
그러나 여기서 코드의 효율성을 위해서 함수에 다음과 같은 조건을 추가해준다.
if n==1 or n==2 or n==3:
return 1
다음 코드를 추가해줌으로서 처음 seq의 3자리 수를 반복문을 돌지 않아도 되게끔 한다.
코드의 효율성 측면에서 직관적이며, 불필요한 계산을 줄이는 조건을 추가한 것이다.
num = int(input(''))
def like_fibo(n):
if n==1 or n==2 or n==3:
return 1
seq = [1,1,1]
for i in range(3,n):
seq.append(seq[i-1]+seq[i-3])
return seq[n-1]
print(like_fibo(num))
코드 오류나 잘못된 부분의 지적은 댓글로 부탁드립니다