티스토리 뷰
https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIseXoKEUcDFAWN
재관이가 옷을 사려고 한다. 세벌씩 묶어서 사면 묶음 중에 제일 싼 옷의 가격만큼 할인받을 수 있다. 사려는 옷들이 있을 때 어떻게 묶어야 가장 싸게 살 수 있는지 구해야 한다. 최대한 비싼 옷들끼리 묶어야 할인 금액이 가장 커짐을 알 수 있다. 가격순대로 정렬을 하고 비싼 옷부터 3개씩 묶어서 해당 묶음 중에서 가장 싼 옷의 가격을 빼 나가면 된다. for문에서 3개씩 건너뛰면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <cstdio> #include <algorithm> using namespace std; int main() { int t; scanf("%d",&t); for(int T=1;T<=t;T++) { int n,sum=0,a[100000]; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]),sum+=a[i]; sort(a,a+n); for(int i=n-3;i>=0;i-=3) sum-=a[i]; printf("#%d %d\n",T,sum); } return 0; } | cs |
'Algorithm > SW Expert Academy' 카테고리의 다른 글
4047 영준이의 카드 카운팅 (0) | 2018.03.27 |
---|---|
1249 보급로 (0) | 2018.03.27 |
2382 미생물 격리 (0) | 2018.03.26 |
2117 홈 방범 서비스 (0) | 2018.03.24 |
2115 벌꿀채취 (0) | 2018.03.24 |