첫번째 코드
def solution(n):
count = 1
down = 1
for i in range(1, int(n/2)+1):
up = 1
for j in range(i):
up *= (n-i-j)
down *= i
count += up/down
answer = count % 1234567
return answer
오류....
두번째 코드
손으로 하나하나 써가다가 피보나치 같은 특성을 갖고 있음을 알았다.
ap[i] = ap[i-1] + ap[i-2]
이렇게 단순한 특성이 있는데...나는 왜...;;
def solution(n):
ap = [0] * (n+1)
ap[1] = 1
ap[2] = 2
if n <= 2:
return ap[n] % 1234567
else:
for i in range(3, n+1):
ap[i] = ap[i-1] + ap[i-2]
return ap[n] % 1234567
테스트 케이스 1에서 런타임 오류..?
세번째 코드
n=1일때 ap[2]가 존재하지 않아 문제가 된 것!
그렇다면 리스트의 길이를 하나 더 늘리면 되지!
def solution(n):
ap = [0] * (n+2)
ap[1] = 1
ap[2] = 2
if n <= 2:
return ap[n] % 1234567
else:
for i in range(3, n+1):
ap[i] = ap[i-1] + ap[i-2]
return ap[n] % 1234567
통과!
고생을 좀 했지만... 그래도 처음으로 2단계 풀었다!
링크
programmers/프로그래머스/2/12914. 멀리 뛰기 at main · ornni/programmers
repository for recording Programmers Algorithm problem solving - ornni/programmers
github.com