백준 14501 퇴사 c언어

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

사고 과정)

1. 이중 배열에 사용할 구조를 결정하십시오! 구조를 결정했어요!

2. dfs를 사용하여 경우의 수를 확인 -> N의 수가 적기 때문에 문제가 없을 것 같습니다.

3. 결과를 전역 변수로 사용하여 최고 임금을 찾습니다.

업그레이드 포인트 또는 실생활에서 포인트 사용)

1. 전체적으로 깔끔하지 않음 ex) i, j, result 를 전역 변수로 사용했으면 더 좋았을 것 같습니다.

2. 지하철 신칸센을 1시간 정도 타면 최단 시간에 목적지에 도착할 수 있을 것 같습니다.

내 코드)

#include <stdio.h>

typedef struct conserting 
{
    int period;
    int pay;
}conserting;

int result;

void    dfs(conserting *conserting, int N, int i, int sum)
{
    if (sum > result)
        result = sum;
    while (i < N)
    {
        if (conserting(i).period + i <= N) 
            dfs(conserting, N, i + conserting(i).period, sum + conserting(i).pay);
        i++;
    }
}


int main()
{
    int N, i, j;
    conserting  conserting(15);
    
    result = -1;
    scanf("%d", &N);
    i = 0;
    while (i < N)
    {
        scanf("%d %d", &conserting(i).period, &conserting(i).pay);
        i++;
    }
    i = 0;
    j = 0;
    result = 0;
    dfs(conserting, N, i, 0);
    printf("%d\n", result);
    return (0);
}