Muscardinus

퇴사 본문

728x90

https://www.acmicpc.net/problem/14501

 

#include <iostream>
#include <algorithm>

using namespace std;

int n;
int t[16] = { 0 };
int p[16] = { 0 };
int result = 0;

void DFS(int day, int currentCost) {
	if (day == n + 1) {
		result = max(result, currentCost);
	}
	else {
		if (day + t[day] <= n + 1) DFS(day + t[day], currentCost + p[day]);
		DFS(day + 1, currentCost);
	}
}

int main() {
	ios_base::sync_with_stdio(false);
	cin >> n;
	int i, j;
	int time, cost;
	for (i = 1; i <= n; i++) {
		cin >> time >> cost;
		t[i] = time;
		p[i] = cost;
	}
	DFS(1,0);
	cout << result << "\n";
	return 0;
}

 

#include <iostream>
#include <algorithm>

using namespace std;

int n;

int t[20];
int p[20];
int dp[20];

int main() {
	ios_base::sync_with_stdio(false);
	cin >> n;
	for (int i = 1; i <= n; i++) cin >> t[i] >> p[i];
	for (int i = 1; i <= n; i++) {
		if(i+t[i]<=n+1) dp[i + t[i]] = max(dp[i + t[i]], dp[i] + p[i]);
		dp[i + 1] = max(dp[i + 1], dp[i]);
	}
	int answer = 0;
	for (int i = 1; i <= n + 1; i++) answer = max(answer, dp[i]);
	cout << answer << "\n";
	return 0;
}
728x90

'알고리즘 문제 > [삼성 SW 역량 테스트 기출 문제]' 카테고리의 다른 글

시험 감독  (0) 2020.08.20
  (0) 2020.08.19
2048(Easy)  (0) 2020.08.18
구술탈출 2  (0) 2020.08.17
연산자 끼워넣기  (0) 2020.08.15
Comments