[SWEA] 수영장

Kim Yuhyeon·2022년 9월 11일
0

알고리즘 + 자료구조

목록 보기
84/161
#include <iostream>
#include <string.h>
#include <algorithm>

#define endl '\n'
#define DEBUG(X) cout << X << "\n";

using namespace std;

int result;
int plan[13], price[4];
int dp[13];

void Init(){
    result = 0;
    memset(dp, 0, sizeof dp);
}

void Input(){
    // 1일 이용권의 요금, 1달 이용권의 요금, 3달 이용권의 요금, 1년 이용권의 요금
    for(int i=0; i<4; i++){
        cin >> price[i];
    }
    for(int i=1; i<=12; i++){
        cin >> plan[i];
    }
}

void Solve(){
    int day = price[0];  
    int month = price[1]; 
    int three_month = price[2];
    int year = price[3];

    // 1월
    dp[1] =  min(day * plan[1], month); // 1일 VS 1달
    
    // 1~2월
    dp[2] = dp[1] + min(day * plan[2], month); // 1일 VS 1달

    // 1~i월
    for(int i=3; i<=12; i++){
        // 1일 VS 1달 VS 3달
        dp[i] = min({dp[i-1] + (day * plan[i]), dp[i-1] + month, dp[i-3] + three_month});
    }


    result =  min(dp[12], year); // 1년이 제일 쌀 경운
}


int main(int argc, char** argv)
{
	int test_case;
	int T;
	
    cin >> T;
	for(test_case = 1; test_case <= T; ++test_case)
	{
		Init();
        Input();
        Solve();
        cout << "#" << test_case << " " << result << endl;
	}
	return 0;
}

SWEA 1952 [모의 SW 역량테스트] 수영장 C++님 블로그

0개의 댓글