SWEA 수영장 C++ 풀이
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpFQaAQMDFAUq
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
using namespace std;
int price[4]; // 각 이용권 별 요금
int dayOfMonth[13]; // 이용 계획
int minMonth[13]; // 각 달을 이용하는 데 필요한 최소 이용 금액.
int d[13];
int min(int a, int b) {
return (a < b) ? a : b;
}
int main() {
int tc;
scanf("%d", &tc);
for (int t = 1; t <= tc; t++) {
for (int i = 0; i < 4; i++) {
scanf("%d", &price[i]);
}
for (int i = 1; i <= 12; i++) {
scanf("%d", &dayOfMonth[i]);
}
//min(하루요금x일수, 한달요금)
//1~12월 월간 최소값 저장
for (int i = 1; i <= 12; i++) {
minMonth[i] = min(price[0] * dayOfMonth[i], price[1]);
}
//d[N]=N번째 날의 누적된 최소값
for (int i = 1; i <= 12; i++) {
d[i] = d[i - 1] + minMonth[i];
if (i - 3 >= 0) {
if (d[i] > d[i - 3] + price[2]) {
d[i] = d[i - 3] + price[2];
}
}
}
// 1달권과 3달권의 이용만으로 구해낸 최소 값과 1년권을 사용했을때의 값을 비교
if (d[12] > price[3]) {
d[12] = price[3];
}
printf("#%d %d\n", t, d[12]);
}
}
'코딩테스트 > SWEA' 카테고리의 다른 글
[SWEA] 점심 시간 (0) | 2023.07.11 |
---|---|
[SWEA] 등산로 조성문제 (0) | 2023.07.11 |
[SWEA] 벌꿀 채취 (0) | 2023.07.11 |
[SWEA] 디저트 카페 (0) | 2023.07.07 |
[SWEA] 보호필름 (0) | 2023.07.07 |