SW/알고리즘

파이썬 : 프로그래머스 : 2 x n 타일링 : 풀이

얇은생각 2019. 9. 21. 07:30
반응형

풀이

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항부터는 첫번째항과 두번째항을 더해주는 방식으로 문제를 해결하였습니다. 따라서 해당되는 값을 리스트에 담아서 해당 항에 차례가 오는 경우 그 값을 반환해주어서 문제를 풀어보았습니다.

반응형