-
[프로그래머스/Level 3] 멀리 뛰기 (C++)알고리즘 문제풀이/프로그래머스 2021. 2. 27. 21:36
programmers.co.kr/learn/courses/30/lessons/12914
기초 DP 문제였습니다.
dp[n]을 n칸을 오르기 위한 경우의 수로 정의하고, 이에 대한 점화식을 세우면 됩니다. 1칸과 2칸 이동을 할 수 있으므로, n칸에 도착하는 방법은 n-1칸을 오르는 경우의 수에 1칸을 오르거나, n-2칸을 오르는 경우의 수에 2칸을 오르면 됩니다. 따라서 점화식은 dp[n] = dp[n - 1] + dp[n - 2] 입니다.
#include <string> #include <vector> using namespace std; long long dp[2001]; long long solution(int n) { dp[1] = 1; dp[2] = 2; for(int i = 3; i <= n; i++) { dp[i] = (dp[i - 1] + dp[i - 2]) % 1234567; } return dp[n]; }
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Level 1] 2016년 (C++) (0) 2021.03.16 [프로그래머스/Level 1] 신규 아이디 추천 (C++) (0) 2021.03.07 [프로그래머스/Level 3] 스타 수열 (C++) (0) 2021.02.26 [프로그래머스/Level 3] 야근 지수 (C++) (0) 2021.02.25 [프로그래머스/Level 3] 불량 사용자 (C++) (0) 2021.02.24