Algorithm ๐ง๐ป๐ป/CodeUp
2641 : ์๋ค๋ฆฌ์ ๊ณ๋จ ์ค๋ฅด๊ธฐ (Small)
dkswnkk
2022. 1. 14. 21:41
๋ฌธ์
์๋ค๋ฆฌ์ ๊ณ๋จ ์ค๋ฅด๊ธฐ (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์ธ ์ค ์์๋๋, ์นธ์ ์ค๋ฅด๋ ์ต์ ํ์๊ฐ ์๋๋ผ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ผ์ ๋ฐฑํธ๋ํน์ผ๋ก ์ ๊ทผํ์ต๋๋ค.
์ธ ์นธ์ ์ค๋ฅด๋ฉด ๋ค์๋ฒ ์ด๋๊ณผ ๋ค์ ๋ค์ ๋ฒ ์ด๋๊น์ง ํ๋ฒ์ ์ธ ์นธ์ ์ค๋ฅด์ง ๋ชปํฉ๋๋ค.