Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- append()
- pop()
- Java Script # == # === # difference # 차이
- Python
- 차집합
- false
- 조지 불
- 파이썬
- 성적 입력받기
- 귀도 반 로섬
- 1일차
- index()
- 변할 수 있는
- 변수
- input()
- del()
- 조건문 큰 수부터 입력받아야하는 이유
- 정보를 담을 수 있는 그릇
- 입출력
- 합집합
- 부스트캠프
- 딥러닝
- insert()
- 불리안
- html
- a=1
- 리스트와 차이점
- null # undefined
- 변수와 입출력
- 그룹 # 그룹 해체 # 단축키 #figma #Figma
Archives
- Today
- Total
I about me
[Python] 멀리 뛰기 본문
문제 설명
효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때,
효진이는
(1칸, 1칸, 1칸, 1칸)
(1칸, 2칸, 1칸)
(1칸, 1칸, 2칸)
(2칸, 1칸, 1칸)
(2칸, 2칸)
의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.
제한사항
n은 1 이상, 2000 이하인 정수입니다.
입출력 예
n | result |
4 | 5 |
3 | 3 |
문제 풀이 순서
이거 뭔가 공부한 느낌인데 코드로 어떻게 구현하지? 라고 생각되었다.
피보나치 수열 느낌이라 재귀적으로 풀었는데 오류가 떴다... 시간 이슈...!
그러므로 우리는 DP를 사용할 것이다.
참고로 DP에서는 "규칙을 찾아 내가 표를 완성해 나간다!"라고 생각하자!!
ex) n = 4
dp[0] | dp[1] | dp[2] | dp[3] | dp[4] |
n은 1 이상으로 무시 | 0 | 0 | 0 | 0 |
↓
dp[0] | dp[1] | dp[2] | dp[3] | dp[4] |
1 | 2 | 1 + 2 = 3 | 2 + 3 = 5 |
def solution(n):
if n == 1:
return 1
elif n == 2:
return 2
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
'Algorithm > 프로그래머스' 카테고리의 다른 글
[Python] 점프와 순간 이동 (0) | 2024.05.19 |
---|---|
[Python] 정수 제곱근 판별 (0) | 2024.05.18 |
[Python] 예상 대진표 (0) | 2024.05.18 |
[Python] 문자열 내 p와 y의 개수 (0) | 2024.05.17 |
[Python] 폰켓몬 (0) | 2024.04.17 |