https://school.programmers.co.kr/learn/courses/30/lessons/12900
๋ฌธ์ ์ค๋ช
๊ฐ๋ก ๊ธธ์ด๊ฐ 2์ด๊ณ ์ธ๋ก์ ๊ธธ์ด๊ฐ 1์ธ ์ง์ฌ๊ฐํ๋ชจ์์ ํ์ผ์ด ์์ต๋๋ค. ์ด ์ง์ฌ๊ฐํ ํ์ผ์ ์ด์ฉํ์ฌ ์ธ๋ก์ ๊ธธ์ด๊ฐ 2์ด๊ณ ๊ฐ๋ก์ ๊ธธ์ด๊ฐ n์ธ ๋ฐ๋ฅ์ ๊ฐ๋ ์ฑ์ฐ๋ ค๊ณ ํฉ๋๋ค. ํ์ผ์ ์ฑ์ธ ๋๋ ๋ค์๊ณผ ๊ฐ์ด 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
- ํ์ผ์ ๊ฐ๋ก๋ก ๋ฐฐ์น ํ๋ ๊ฒฝ์ฐ
- ํ์ผ์ ์ธ๋ก๋ก ๋ฐฐ์น ํ๋ ๊ฒฝ์ฐ
์๋ฅผ๋ค์ด์ n์ด 7์ธ ์ง์ฌ๊ฐํ์ ๋ค์๊ณผ ๊ฐ์ด ์ฑ์ธ ์ ์์ต๋๋ค.
!https://i.imgur.com/29ANX0f.png
์ง์ฌ๊ฐํ์ ๊ฐ๋ก์ ๊ธธ์ด n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด ์ง์ฌ๊ฐํ์ ์ฑ์ฐ๋ ๋ฐฉ๋ฒ์ ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๋ด ํ์ด
์ฌ์ด DP ๋ฌธ์ ์๋ค. ํ์ผ์ 1๊ฐ ๋ฐฐ์นํ๋ ๊ฒฝ์ฐ์ ์, 2๊ฐ ๋ฐฐ์นํ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ค. ํ์ผ 3๊ฐ์งธ๋ถํฐ๋ ์์ ๋ณด๋ค 1๊ฐ ์ ์ ํ์ผ์ ๋๋ ๊ฒฝ์ฐ๋ 2๊ฐ ์ ์ ํ์ผ์ ๋๋ ๊ฒฝ์ฐ๋ฅผ ํฉํ ๊ฒ๊ณผ ๊ฐ๋ค.
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
vector<long long> dp(n+1);
dp[1] = 1;
dp[2] = 2;
for(int i = 3; i <= n; ++i)
{
dp[i] = (dp[i-1] + dp[i-2]) % 1'000'000'007 ;
}
answer = dp[n];
return answer;
}
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค]level.3 - ํํ ๊ฐ๋ฅํ ์ด์งํธ๋ฆฌ(C++) (0) | 2023.08.22 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค]level.1 - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์(C++) (2) | 2023.08.10 |
[ํ๋ก๊ทธ๋๋จธ์ค]level.2 - ๋ํ์ค ๊ฒ์(C++) (0) | 2023.08.07 |
[ํ๋ก๊ทธ๋๋จธ์ค]level.2 - ํ ์ธ ํ์ฌ(C++) (0) | 2023.08.03 |
[ํ๋ก๊ทธ๋๋จธ์ค]level.3 - ์ธ์ฌ๊ณ ๊ณผ(C++) (1) | 2023.08.01 |