본문 바로가기
코딩테스트/Python

[프로그래머스][파이썬] 2 x n 타일링

by 포뇨j 2023. 12. 30.

https://school.programmers.co.kr/learn/courses/30/lessons/12900

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

def solution(n):
    arr = [1,2]
    for _ in range(3, n+1):
        arr.append((arr[-1] + arr[-2]) % 1000000007)
    return arr[n-1]

 

규칙만 찾으면 생각보다 쉽게 풀 수 있는 문제다.

경우의 수가 [1, 2, 3, 5, 8 ...] 형태로 증가하므로 arr[-1], arr[-2]을 더한 값을 구하면 된다.

 

다만 효율성 테스트를 통과하지 못하는 문제가 있었는데,

return문에서 arr[n-1] % 1000000007로 계산할 시 시간초과가 발생한다.

따라서 arr에 추가할 때 % 연산을 해야 한다.