파이썬 46

[Lv_3] 산 모양 타일링

def solution(n, tops): answer = 0 div = 10007 # 우하단 마름모를 제외한 경우의 수 배열 a = [0] * (n + 1) # 우하단 마름모만을 포함하는 경우의 수 배열 b = [0] * (n + 1) a[0] = 1 for i in range(0, n): # 현재 순회 중 top 존재 시 발생 경우의 수 확인 if (tops[i] == 1): a[i + 1] = a[i] * 3 + b[i] * 2 else: a[i + 1] = a[i] * 2 + b[i] * 1 # 현재 정삼각형에서 우하단 마름모인 경우는 앞선 경우의 수와 무관 b[i + 1] = a[i] + b[i] a[i + 1] = a[i + 1] % div; b[i + 1] = b[i + 1] % div; re..

알고리즘 2024.01.25