GitHubSeob
C++ / 프로그래머스 / 멀리 뛰기 본문
문제 |
https://school.programmers.co.kr/learn/courses/30/lessons/12914
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이 |
n이 1이면 1,
n2이 2이면 1+1, 2 = 2개
n이 3이면 1+1+1, 2+1, 1+2
....
n개는 n-2의 모든 경우에서 +2를 더한 것과 같고, n-1의 모든 경우에서 +1을 더한 것과 같다.
따라서 DP[n] = DP[n-1] + DP[n-2]이다.
n이 0일 때, 1일 때는 따로 1로 값을 저장하고, 2부터는 반복문을 돌리면 된다.
나머지 연산 꼭!
코드 |
#include <string>
#include <vector>
#define DIV 1234567
using namespace std;
long long solution(int n) {
int idx(0);
vector<long long>DP(n + 1, 0);
DP[0] = 1;
DP[1] = 1;
for (idx = 2; idx <= n; ++idx) {
DP[idx] = (DP[idx - 1] + DP[idx - 2]) % DIV;
}
return DP[n];
}
'Programmers > Level 2' 카테고리의 다른 글
C++ / 프로그래머스 / 연속 부분 수열 합의 개수 (0) | 2023.07.11 |
---|---|
C++ / 프로그래머스 / 귤 고르기 (0) | 2023.07.06 |
C++ / 프로그래머스 / N개의 최소공배수 (0) | 2023.07.06 |
C++ / 프로그래머스 / 구명보트 (0) | 2023.07.04 |
C++ / 프로그래머스 / 점프와 순간 이동 (0) | 2023.07.04 |