반응형
풀이
def solution(n):
answer = 0
if n == 1:
return 1
elif n == 2:
return 2
else:
answer_list = [0,1,2]
for i in range(3, n+2):
answer_list.append((answer_list[i-1] + answer_list[i-2])% 1000000007)
return answer_list[i-1]
return answer
실행 결과
정확성 테스트
테스트 1 〉 | 통과 (1.52ms, 10.8MB) |
테스트 2 〉 | 통과 (0.32ms, 10.9MB) |
테스트 3 〉 | 통과 (1.09ms, 10.8MB) |
테스트 4 〉 | 통과 (1.99ms, 10.7MB) |
테스트 5 〉 | 통과 (0.26ms, 10.7MB) |
테스트 6 〉 | 통과 (1.60ms, 10.9MB) |
테스트 7 〉 | 통과 (0.27ms, 10.7MB) |
테스트 8 〉 | 통과 (1.34ms, 10.8MB) |
테스트 9 〉 | 통과 (1.33ms, 10.9MB) |
테스트 10 〉 | 통과 (2.11ms, 10.7MB) |
테스트 11 〉 | 통과 (1.04ms, 10.8MB) |
테스트 12 〉 | 통과 (0.33ms, 10.7MB) |
테스트 13 〉 | 통과 (0.49ms, 10.8MB) |
테스트 14 〉 | 통과 (1.01ms, 10.7MB) |
효율성 테스트
테스트 1 〉 | 통과 (4.60ms, 11.2MB) |
테스트 2 〉 | 통과 (7.25ms, 12MB) |
테스트 3 〉 | 통과 (4.76ms, 11.3MB) |
테스트 4 〉 | 통과 (3.38ms, 11MB) |
테스트 5 〉 | 통과 (8.94ms, 12.3MB) |
테스트 6 〉 | 통과 (12.45ms, 12.7MB) |
채점 결과
정확성: 70.0
효율성: 30.0
합계: 100.0 / 100.0
총평
n이 1인 경우는 반환값이 1입니다. n이 2인 경우에는 반환값이 2입니다. 그리고 문제를 분석한 결과, n항은 n-1항과 n-2항을 더한 값이라는 것을 알게 되었습니다. 따라서, 3항부터는 첫번째항과 두번째항을 더해주는 방식으로 문제를 해결하였습니다. 따라서 해당되는 값을 리스트에 담아서 해당 항에 차례가 오는 경우 그 값을 반환해주어서 문제를 풀어보았습니다.
반응형
'SW > 알고리즘' 카테고리의 다른 글
파이썬 : 프로그래머스 : 가장 긴 팰린드롬 : 풀이 (0) | 2019.09.23 |
---|---|
파이썬 : 프로그래머스 : 타일 장식물 : 풀이 (0) | 2019.09.22 |
파이썬 : 프로그래머스 : 콜라츠 추측 : 풀이 (0) | 2019.09.20 |
파이썬 : 프로그래머스 : 하샤드 수 : 풀이 (0) | 2019.09.19 |
파이썬 : 프로그래머스 : 평균 구하기 : 풀이 (0) | 2019.09.17 |