산 모양 타일링

Level
3
문제 진행 상태
코드 완료
해설 작성 중
알고리즘 & 자료구조
DP
정답률 (%)
23
태그
2024 KAKAO WINTER INTERNSHIP

문제 링크

풀이 과정

전체 코드

def solution(n, tops): # 나머지 mode = 10007 # 사다리꼴 i번째 윗변을 역마름모로 채우는 방법 reverse_rhombus = [0 for _ in range(n+1)] reverse_rhombus[1] = 1 # 사다리꼴 i번째 윗변을 나머지 도형으로 채우는 방법 not_reverse_rhombus = [0 for _ in range(n+1)] if tops[0] == 0: not_reverse_rhombus[1] = 2 else: not_reverse_rhombus[1] = 3 for i in range(2, n+1): if tops[i-1] == 0: # 사다리꼴 i번째 윗변에 정삼각형이 없는 경우 not_reverse_rhombus[i] = ( reverse_rhombus[i-1] + 2 * not_reverse_rhombus[i-1] ) % mode else: # 사다리꼴 i번째 윗변에 정삼각형이 있는 경우 not_reverse_rhombus[i] = ( 2 * reverse_rhombus[i-1] + 3 * not_reverse_rhombus[i-1] ) % mode reverse_rhombus[i] = (reverse_rhombus[i-1] + not_reverse_rhombus[i-1]) % mode return (not_reverse_rhombus[n] + reverse_rhombus[n]) % mode
Python
복사