idx를 넘길 때 사용한 일인 consume을 더해서 넘기서 그 idx부터 검사하도록 하였다. 굿 아이디어.
마지막에 더한 것이 퇴사일이 아닌 퇴사일 초과라면, 마지막에 더한 것을 제외해준다. 40분 컷.. #include using namespace std; int n, max_sum; typedef struct { int consume, cost; }CONSULTING; CONSULTING day[15]; //오히려 함수 인자들을 줄여라!
void dfs(int idx, int temp_sum, int present) { if (idx >= n) { if (idx != n) { temp_sum -= present; } if (max_sum < temp_sum) max_sum = temp_sum; return; } for (int i = idx; i < n; ++i) { dfs(i + day[i].consume, temp_sum + day[i].cost, day...
원문 링크 : 백준 - 퇴사