Algorithm/구름TEST2 타일채우기 - level 4 해결방법 dp를 이용하여 풀었다. $$ dp[N] = dp[N-1] + 2*dp[N-2] $$ N번째 경우의 수는 dp[N-1]번째에서 1 X 2 직사각형을 채울 경우와 dp[N-2]에서 2 X 1 직사각형과 2 X 2 직사각형을 채울 경우의 수를 합친것이다. 소스코드 #include using namespace std; int dp[1001]; int N, M; int main() { cin >> N >> M; dp[1] = 1; dp[2] = 3; for(int i = 3; i 2019. 5. 12. 3개의 숫자를 더하여 술래가 원하는 숫자를 만드세요 - level 2 해결 방법 문제 자체가 어렵다기 보다는 예외 케이스가 많아서 힘들었다. 일단 이 문제 반례를 찾으시는 분은 아래 케이스를 해보길 바랍니다. input 5 5 5 2 12 12 output 2 5 5 전체 소스 #include #include #include #include using namespace std; typedef long long ll; ll num[30], cnt, T, n; vector check; ll sum(vector v) { ll ret = 0; for(int i = 0; i < v.size(); ++i) ret += v[i]; return ret; } void dfs(vector v, int here, int c) { if(c == 3) { if(T == sum(v)) { for(.. 2019. 5. 11. 이전 1 다음