본문 바로가기

Computer Science&Engineering/코딩테스트

[백준 14501] 퇴사 C++

# 문제링크

www.acmicpc.net/problem/14501

 

14501번: 퇴사

첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.

www.acmicpc.net

삼성 기출 문제집에서 문제를 하나씩 풀고 있다. 대부분 골드 난이도의 문제였는데,, 이건 실버 난이도다. 제발 이런 문제가 하나 나왔으면 좋겠다.. DFS 기본 문제 느낌이다..

 

# 제출 코드 

#include <cstdio>
using namespace std;

int N;
int map[16][2]; // 0은 time, 1은 pay
int ans;

void DFS(int start, int pay) {
	if (pay > ans) ans = pay;
	
	for (int i = start; i <= N; i++) {
		if (i + map[i][0] > N + 1) continue;
		DFS(i + map[i][0], pay + map[i][1]);
	}
}
int main() {
	scanf("%d", &N);
	for (int i = 1; i <= N; i++) {
		scanf("%d %d", &map[i][0], &map[i][1]);
	}
	DFS(1, 0);
	printf("%d\n", ans);
}
반응형