문제
1칸, 2칸을 갈 수 있을때 n칸 까지 도달하기 위한 경우의 수를 리턴하는 문제이다.
n=1일때, (1칸) = return 1
n=2일때, (1칸, 1칸), (2칸) = return 2
n=3, n=4 는 그림을참고하면 된다.
결국 피보나치 문제였다.
주의할 점은 n이 1 또는 2일때 어떠한 메모리 할당도 하지 않고 바로 리턴해야 테스트1번이 통과된다.
풀이
def solution(n):
if n<3: return n
dp=[0]*(n+1)
dp[1]=1
dp[2]=2
for i in range(3,n+1):
dp[i]=dp[i-1]+dp[i-2]
return dp[n]%1234567
반응형
'Problem Solving > Programmers' 카테고리의 다른 글
프로그래머스 (Level 2) : 게임 맵 최단거리/ Python/ 너비 우선 탐색(BFS, deque) (0) | 2022.08.24 |
---|---|
프로그래머스 (Level 2) : JadenCase 문자열 만들기 / Python (0) | 2022.08.22 |
프로그래머스 (Level 1) : 신규 아이디 추천 / Python / 2021 KAKAO BLIND RECRUITMENT (0) | 2022.08.09 |
프로그래머스 (Level 1) : 3진법 뒤집기 / Python / 월간 코드 챌린지 시즌1 (0) | 2022.07.10 |
프로그래머스 (Level 1) : 로또의 최고 순위와 최저 순위 / Python / 2021 Dev-Matching: 웹 백엔드 개발자(상반기) (0) | 2022.07.04 |