728x90
나의 풀이
def solution(n):
if n % 2:
return 0
k = 1000000007
n //= 2
dp = [3, 11]
if n > 3:
for _ in range(n - 2):
dp.append((dp[-1] * 4 - dp[-2] + k) % k)
return dp[-1]
- 홀수일때 불가하니 0
- 짝수일때만 비교해서 dp로 해결
- 규칙 구하는게 어려웠던 문제
배열 안쓰는 풀이
def solution(n):
if n % 2:
return 0
front = back = 1
for _ in range(n//2):
front, back = back, (4*back - front) % 1000000007
return back
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스/파이썬] 쿼드압축 후 개수 세기 (0) | 2022.06.18 |
---|---|
[프로그래머스/파이썬] n^2 배열 자르기 (0) | 2022.06.17 |
[프로그래머스/파이썬] 점프와 순간 이동 (0) | 2022.06.17 |
[프로그래머스/파이썬] 이진 변환 반복하기 (0) | 2022.06.17 |
[프로그래머스/파이썬] [1차] 캐시 (0) | 2022.06.17 |