티스토리 뷰

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
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday