๋ฌธ์
์๋ค๋ฆฌ์ ๊ณ๋จ ์ค๋ฅด๊ธฐ (Small)
* 4๊ฐ์ ๊ณ๋จ์ ์ค๋ฅด๋ ๋ฐฉ๋ฒ์ - 1 1 1 1 - 1 1 2 - 1 2 1 - 2 1 1 - 2 2 - 1 3 - 3 1
codeup.kr
์ฝ๋
#include <iostream> using namespace std; int dp[16]; int N,ans; void dfs(int current,int before_step,int before_before_step){ if(current==N){ ans++; return; } else if(current>N) return; else{ if(before_step==3||before_before_step==3){ dfs(current+1,1,before_step); dfs(current+2,2,before_step); } else{ dfs(current+1,1,before_step); dfs(current+2,2,before_step); dfs(current+3,3,before_step); } } } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin>>N; dfs(1,1,0); //์ฒซ ์์์ ํ์นธ dfs(2,2,0); //์ฒซ ์์์ ๋์นธ dfs(3,3,0); //์ฒซ ์์์ ์ธ์นธ cout<<ans; }
ํ์ด
๋ฌธ์ ๋ง ์ ๋ชฉ๋ง ๋ณด๊ณ ๋น์ฐํ DP์ธ ์ค ์์๋๋, ์นธ์ ์ค๋ฅด๋ ์ต์ ํ์๊ฐ ์๋๋ผ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ผ์ ๋ฐฑํธ๋ํน์ผ๋ก ์ ๊ทผํ์ต๋๋ค.
์ธ ์นธ์ ์ค๋ฅด๋ฉด ๋ค์๋ฒ ์ด๋๊ณผ ๋ค์ ๋ค์ ๋ฒ ์ด๋๊น์ง ํ๋ฒ์ ์ธ ์นธ์ ์ค๋ฅด์ง ๋ชปํฉ๋๋ค.
์ฑ์

'Algorithm ๐ง๐ปโ๐ป > CodeUp' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
1510 : ํ์ ๋ง๋ฐฉ์ง (0) | 2022.01.16 |
---|---|
4503 : ๋ฐ์ด๋ฌ์ค (0) | 2022.01.14 |
3705 : ์ฐ์๋ ๊ตฌ๊ฐ์ ์ต๋ํฉ (0) | 2022.01.14 |
3108 : ์ ์ฌ ์ฐธ์ฌ ํ์ ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ 1 (0) | 2022.01.14 |
2633 : Lower Bound (0) | 2022.01.14 |
4060: ์ ๊ดํ ์ ๊ตฌ์กฐ์ (0) | 2022.01.14 |
๋๊ธ